您的位置:首页 > 移动开发 > Android开发

Android自定义Dialog(仿QQ同步助手退出对话框)

2012-08-08 21:37 429 查看
继承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写的有点问题,继续研究下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息