标签:保留 span san new title protected show .net 需要
1.先把dialog格式设置好 透明的没有边框 这样相当于得到一个空白的画板 想怎么添加布局就怎么添加布局 想怎么写就怎么写 所以就是自定义的了
转载请标注转载http://blog.csdn.net/oqihaogongyuan/article/details/50958659
现在很多App的提示对话框都非常有个性,然而你还用系统的对话框样式,是不是觉得很落后呢,今天我就给大家讲讲怎样自定义自己的Dialog,学会了之后,你就会根据自家app的主题,设计出相应的Dialog的风格。
好了接下来我就以一个简单风格的自定义Dialog来讲讲自定义dialog的一般步骤和原理。
第一步: 给Dialog设置一个风格主题(基本都是用这个主题)无边框全透明背景:
<!--自定义dialog背景全透明无边框theme --> <style name="MyDialog" parent="android:style/Theme.Dialog"> <!--背景颜色及和透明程度--> <item name="android:windowBackground">@android:color/transparent</item> <!--是否去除标题 --> <item name="android:windowNoTitle">true</item> <!--是否去除边框--> <item name="android:windowFrame">@null</item> <!--是否浮现在activity之上--> <item name="android:windowIsFloating">true</item> <!--是否模糊--> <item name="android:backgroundDimEnabled">false</item> </style>
2.自己定义layout 加载到自定义的MyselfDialog中 定义为自己需要的界面 主要是自定义一些按钮的点击事件 滑动事件 单选对话框等 需要通过接口调用方法 (所以自定义的类中 需要自己定义接口 到对应的点击事件中实现接口中的方法 在activity 中重写接口的方法)
public class MyselfDialog extends Dialog {
private TextView textView;
private Button btConfirm;
private Button btCancel;
private TextView titile;
public MyselfDialog(Context context) {
super(context, R.style.MyDialog);
}
private onYesClickInterface onYesClickInterface;
private onNoClickInterface onNoClickInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialig_myself);
titile = (TextView) findViewById(R.id.textview_title);
textView = (TextView) findViewById(R.id.textview);
btConfirm = (Button) findViewById(R.id.confirm);
btCancel = (Button) findViewById(R.id.cancel);
btConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onYesClickInterface != null){
onYesClickInterface.setYesClick();
}
}
});
btCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onNoClickInterface != null){
onNoClickInterface.setNoClick();
}
}
});
}
public void setOnYesClickInterface(onYesClickInterface onYesClickInterface){
if (onYesClickInterface != null){
this.onYesClickInterface = onYesClickInterface;
}
}
public void setOnNoClickInterface(onNoClickInterface onNoClickInterface){
if (onNoClickInterface != null){
this.onNoClickInterface = onNoClickInterface;
}
}
public void setTitle(String title){
this.titile.setText(title);
}
public void setMessage(String msg){
this.textView.setText(msg);
}
public interface onYesClickInterface{
public void setYesClick();
}
public interface onNoClickInterface{
public void setNoClick();
}
}
3. Activity界面代码 重写接口方法 实现对话框功能
public class DialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myselfdialog);
Button bt = (Button) findViewById(R.id.show_dialog);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyselfDialog myselfDialog = new MyselfDialog(getBaseContext());
myselfDialog.setTitle("1111111111111111111111111111111");
myselfDialog.setMessage("22222222222222222222222222222222222");
myselfDialog.setOnYesClickInterface(new MyselfDialog.onYesClickInterface() {
@Override
public void setYesClick() {
Toast.makeText(getBaseContext(),"点击确定按钮",Toast.LENGTH_SHORT).show();
}
});
myselfDialog.setOnNoClickInterface(new MyselfDialog.onNoClickInterface() {
@Override
public void setNoClick() {
Toast.makeText(getBaseContext(),"点击取消按钮",Toast.LENGTH_SHORT).show();
}
});
myselfDialog.show();
}
});
}
}
刚刚写了一个自定义 dialog demo 也是网上查询了一下 保留记录
标签:保留 span san new title protected show .net 需要
原文地址:http://www.cnblogs.com/wlwqnj/p/6963732.html