在网上找了很多关于dialog的自定义样式的问题,还有很多人写得比较复杂,需要改动style什么的,或者是自定义dialog搞得很复杂,我最后还是找到了方法来实现。参考原文地址:http://jy0329.blog.163.com/blog/static/14746600220132204035120/

下面是我的dialog布局xml文件:

<</span>RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@android:color/transparent"

android:layout_margin="50dp">

<</span>RelativeLayout

android:id="@+id/rl_dialog_content"

android:layout_width="fill_parent"

android:layout_height="200dp"

android:background="@drawable/alertdialog_bg">

<</span>TextView

android:id="@+id/dialog_text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="现在就打电话给客服:arjinmc"

android:layout_marginTop="50dp"

android:layout_marginLeft="30dp"

android:layout_marginRight="30dp"

android:maxLines="5"

android:gravity="center"

/>

<</span>LinearLayout

android:id="@+id/ll_buttons"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_alignParentBottom="true"

android:layout_margin="30dp">

<</span>Button

android:id="@+id/dialog_cancel"

android:text="@string/alert_cancel"

android:background="@drawable/btn_long_white"

style="@style/dialog_button"

android:layout_weight="1"

android:textColor="@color/tabs_font"

/>

<</span>Button

android:id="@+id/dialog_ok"

android:text="@string/alert_ok"

android:background="@drawable/btn_long_red"

style="@style/dialog_button"

android:layout_weight="1"

android:layout_marginLeft="5dp"/>

</</span>LinearLayout>

</</span>RelativeLayout>

<</span>ImageButton

android:id="@+id/dialog_close"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/alertdialog_close"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:layout_marginLeft="20dp"

/>

</</span>RelativeLayout>

效果如图:



在代码中需要这项写就可以了:

//布局文件转换为view对象

LayoutInflater inflaterDl = LayoutInflater.from(this);

RelativeLayout layout = (RelativeLayout)inflaterDl.inflate(R.layout.layout_dialog,null);

//对话框

finalDialog dialog =newAlertDialog.Builder(SettingActivity.this).create();

dialog.show();

dialog.getWindow().setContentView(layout);

//取消按钮

Button btnCancel = (Button) layout.findViewById(R.id.dialog_cancel);

btnCancel.setOnClickListener(newOnClickListener() {

@Override

publicvoidonClick(View v) {

Toast.makeText(getApplicationContext(),"cancel", Toast.LENGTH_SHORT).show();

}

});

//确定按钮

Button btnOK = (Button) layout.findViewById(R.id.dialog_ok);

btnOK.setOnClickListener(newOnClickListener() {

@Override

publicvoidonClick(View v) {

Toast.makeText(getApplicationContext(),"ok", Toast.LENGTH_SHORT).show();

}

});

//关闭按钮

ImageButton btnClose = (ImageButton) layout.findViewById(R.id.dialog_close);

btnClose.setOnClickListener(newOnClickListener() {

@Override

publicvoidonClick(View v) {

dialog.dismiss();

}

});

非常easy!自己动手吧。

更多相关文章

  1. Android(安卓)assets文件夹之位置放置和作用( AS 和eclipse中的 )
  2. 小记初学android过程中遇到的小问题(android 4.4)
  3. Android启动模式
  4. 从头开始学Android—Android(安卓)Studio(二)
  5. android jni
  6. Android(安卓)将自己的应用程序改成系统的应用程序
  7. Android调用WebAPI之传参、文件
  8. android项目结构
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android之判断当前指定App是否在前台
  2. ProgressBar进度条
  3. minSdkVersion、targetSdkVersion、targe
  4. Android 5.0 API 的变化——开发人员注意
  5. Android编译报错
  6. Android电话拨号器实现方法
  7. 在非主线程中不能操作主线程中的View
  8. Android 泛型使用
  9. Android语音识别功能使用总结
  10. Android 弹出菜单