android自定义Dialog
来源:互联网 发布:淘宝发帖怎么删除 编辑:程序博客网 时间:2024/06/11 21:50
我们在部分机型上使用Toast的时候会出现Toast不显示的问题
其中一种解决办法就是使用自定义的Dialog代替
在使用Dialog在的时候,其中有一些让很多人头疼的问题
1.dialog显示的位置如何控制
2.dialog显示的时间如何控制
3.dialog显示的时候Activity的背景会变暗,如何设置dialog显示的时候Activity的背景不变暗
注意:自定义dialog的布局位置设置和popuwindow的类似http://blog.csdn.net/wei_chong_chong/article/details/51057559
根节点设置宽高推荐使用Match_parent,
第一步:
定义一个dialog的布局mydialog.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/myDialogTv" android:layout_width="120dp" android:layout_height="30dp" android:layout_gravity="center" android:background="@android:color/holo_blue_light" android:gravity="center" android:textColor="@android:color/black" android:text="dialog!" android:textSize="13sp" /></LinearLayout>第二步
自定义dialog的显示样式res/values/styles.xml
<style name="mydialogstyle" parent="@android:style/Theme.Dialog"> <item name="android:backgroundDimEnabled">false</item><!--activity不变暗--> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上--> <item name="android:windowFrame">@null</item><!--边框--> <item name="android:windowIsTranslucent">false</item><!--半透明--> <item name="android:windowBackground">@android:color/transparent</item><!--dialog显示时 Activity的背景颜色 --> </style>
第三步在activity中使用就行了
public void showMyDialog(Context context,String msg){//第一种创建方法AlertDialog.Builder builder= new AlertDialog.Builder(context,R.style.mydialogstyle);//创建buider AlertDialog dialog = builder.create();//第二种创建方法//Dialog dialog = new Dialog(context, R.style.mydialogstyle); dialog.show();//这一句话一定要紧跟着new创建 之后不然会报错//下面对dialog的所有配置代码一定要放在dialog.show();之后,不然会报错(我的手机是这样的,不知道你们的是不是)Window dialogWindow = dialog.getWindow();dialogWindow.setContentView(R.layout.mydialog);TextView tv_title = (TextView) dialogWindow.findViewById(R.id.myDialogTv);tv_title.setText("msg");WindowManager.LayoutParams lp = dialogWindow.getAttributes();lp.alpha = 1.0f;//设置Dialog的透明度lp.x = 0;lp.y= dip2px(context, 180);//把dp转换为sp,这里的lp.x/lp.y 是相对于原位置的偏移量dialogWindow.setAttributes(lp);}public static int dip2px(Context context, float dpValue) { //把dp转换为pxfinal float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f);}
参考:http://blog.csdn.net/alrdy/article/details/8099438#
http://www.cnblogs.com/angeldevil/archive/2012/03/31/2426242.html
0 0
- 自定义Dialog android Dialog
- 【Android】Dialog以及自定义Dialog
- android 系统Dialog,自定义Dialog
- android 自定义dialog 自定义dialog 宽度问题
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义Dialog分类
- Android Dialog( 自定义对话框)
- Android自定义Dialog
- Android-自定义Dialog样式
- Android 自定义Dialog样式
- Android:自定义dialog
- Android 自定义dialog
- Android自定义Dialog对话框
- Android 自定义dialog
- Android自定义Dialog
- Android自定义Dialog
- 视频直播本地测试服务器搭建
- 拆解Clucene系列(3)——Clucene的代码组织结构
- maven使用
- Volley
- iOS开发笔记>> 以 schedcledTimerWithTimerInterval…的方式触发的 timer,在滑动页面上的列表时,timer 会暂停回调,为什么?如何解决?
- android自定义Dialog
- yii2 mail config
- jquery中$.ajax()方法详解
- jQuery 图表插件 jqChart 使用绘制雷达图
- HDU 1272 并查集 图和并查集的结合
- SFTP资源文件下载
- Java/Android
- 前端,HTML,JS
- html5页面调用手机打电话功能