Android自定义Dialog(仿QQ同步助手退出对话框)
继承Dialog类就可以了,写写布局文件,写写style,就OK了。下面开始。
先上布局文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/bg_dialog_bottom" >
<View
android:layout_width="fill_parent"
android:layout_height="20dip"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="退出确认"
android:textSize="22sp"
android:textColor="#000000"
/>
<View
android:layout_width="fill_parent"
android:layout_height="30dip"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="确定退出程序?"
android:textSize="18sp"
android:textColor="#2E2E2E"
/>
<View
android:layout_width="fill_parent"
android:layout_height="20dip"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/btOK"
android:layout_width="120dip"
android:layout_height="40dip"
android:layout_marginRight="20dip"
android:text="确定"
android:textColor="#454545"
android:background="@drawable/btn_dialog"
/>
<Button
android:id="@+id/btCancel"
android:layout_width="120dip"
android:layout_height="40dip"
android:layout_marginLeft="20dip"
android:text="取消"
android:textColor="#454545"
android:background="@drawable/btn_dialog"
/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="30dip"
/>
</LinearLayout>
然后写style
<resources>
<style name="MyDialog" parent="@android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>
扩展的Dialog类:
public class MyDialog extends Dialog {
private Button Ok,Cancel;
private Context context;
public MyDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
}
public MyDialog(Context context, int theme) {
super(context, theme);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.dialog);
Ok = (Button)findViewById(R.id.btOK);
Cancel = (Button)findViewById(R.id.btCancel);
Ok.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "OK", Toast.LENGTH_SHORT).show();
}
});
Cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "Cancel", Toast.LENGTH_SHORT).show();
}
});
}
}
对比一下效果:
有点差别,一个是selector一个是style写的有点问题,继续研究下。
还没有评论,来说两句吧...