Dialog
来源:互联网 发布:淘宝拍a发b处罚力度 编辑:程序博客网 时间:2024/06/05 05:34
1、自定义Dialog
/** * @Title: WeatherDialog.java * @Package com.sq.hbt.view * @Description: TODO(用一句话描述该文件做什么) * @author * @date 2015-10-20 上午10:28:13 * @version V1.0 */package com.sq.hbt.view;import android.app.Dialog;import android.content.Context;import android.view.Display;import android.view.Gravity;import android.view.WindowManager;import com.sq.hbt.R;/** * @ClassName: WeatherDialog * @Description: TODO(这里用一句话描述这个类的作用) * @author * @date 2015-10-20 上午10:28:13 * */public class WeatherDialog extends Dialog {public WeatherDialog(Context context) {this(context, R.style.WeatherDialog);}public WeatherDialog(Context context, int theme) {super(context, theme);this.setContentView(R.layout.dialog_weather);WindowManager m = getWindow().getWindowManager();Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高android.view.WindowManager.LayoutParams p = getWindow().getAttributes();p.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;p.y = (int) (d.getHeight() * 0.1); // 新位置Y坐标p.width = (int) (d.getWidth() * 0.9); // 宽度设置为屏幕的0.8//p.height = (int) (d.getHeight() * 0.6); // 高度设置为屏幕的0.7p.alpha = 1.0f; // 透明度getWindow().setAttributes(p);}}2、调用初始化
WeatherDialog wtherdg;// 创建并初始化Dialogwtherdg = new WeatherDialog(MainActivity.this);wtherdg.setCanceledOnTouchOutside(true);wtherdg.show();
常见问题:
1、Dialog怎样自动适配布局?
宽度可以根据屏幕设置。(如上文所述)
高度不用设置,默认即可。
2、初始化布局时报错如下
FATAL EXCEPTION: main
Process: com.sq.hbt.weather, PID: 24612
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
at android.view.ViewRootImpl.setView(ViewRootImpl.java:595)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:270)
...
...
原因:初始化时上下文获取方式问题
wtherdg = new WeatherDialog(getApplicationContext());错误写法
必须是如下写法
wtherdg = new WeatherDialog(MainActivity.this);正确写法
附件代码:R.style.WeatherDialog
<style name="CustomDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> </style> <style name="WeatherDialog" parent="@style/CustomDialog"> <item name="android:windowBackground">@drawable/shape_weather_dialog</item> <item name="android:windowNoTitle">true</item> </style>附件代码:R.layout.dialog_weather
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_gray_background" ><LinearLayout android:id="@+id/ll_forecast1" android:layout_width="match_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:orientation="horizontal" > <RelativeLayout android:id="@+id/rl_fc_date1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="0dp" android:layout_marginTop="5dp" android:background="@color/color_top_blue" android:text="今天" android:textColor="@color/color_white" /> <TextView android:id="@+id/tv_date1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="30dp" android:layout_marginTop="5dp" android:text="----日" android:textColor="@color/color_black" android:textSize="13sp" /> <TextView android:id="@+id/tv_week1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tv_date1" android:layout_below="@+id/tv_date1" android:layout_marginTop="5dp" android:text="星期----" android:textColor="@color/color_black" android:textSize="13sp" /> </RelativeLayout> <RelativeLayout android:id="@+id/rl_fc_day1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_weight="1" android:gravity="left" > <TextView android:id="@+id/tv_day_wendu1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="高温----℃" android:textColor="@color/color_orange_dark" android:textSize="13sp" /> <TextView android:id="@+id/tv_day_type1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_day_wendu1" android:layout_marginTop="2dp" android:text="白天气象--" android:textColor="@color/color_orange_dark" android:textSize="13sp" /> <TextView android:id="@+id/tv_day_feng1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_day_type1" android:layout_marginTop="2dp" android:text="风向--风力--级" android:textColor="@color/color_orange_dark" android:textSize="13sp" /> </RelativeLayout> <RelativeLayout android:id="@+id/rl_fc_night1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="left" > <TextView android:id="@+id/tv_night_wendu1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="低温----℃" android:textColor="@color/color_blue_mid" android:textSize="13sp" /> <TextView android:id="@+id/tv_night_type1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_night_wendu1" android:layout_marginTop="2dp" android:text="夜晚气象--" android:textColor="@color/color_blue_mid" android:textSize="13sp" /> <TextView android:id="@+id/tv_night_feng1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_night_type1" android:layout_marginTop="2dp" android:text="风向--风力--级" android:textColor="@color/color_blue_mid" android:textSize="13sp" /> </RelativeLayout> </LinearLayout></RelativeLayout>
0 0
- Dialog
- Dialog
- Dialog
- Dialog
- Dialog
- dialog
- Dialog
- dialog
- dialog
- dialog
- Dialog
- dialog
- Dialog
- Dialog
- Dialog
- Dialog
- Dialog
- dialog
- connect永远阻塞线程及解决方案
- ArcGIS教程:按属性提取 (空间分析)
- mysql varchar
- [Mysql] Limit分页性能陷阱
- CCT之CAMERA TUNNING调试学习总结
- Dialog
- 关于java StringBuilder初始化的一个坑
- 将txt转换pdf的详细操作步骤
- Android数据库高手秘籍(一)——SQLite命令
- Tomcat安装运行详解
- HDOJ 1541 Stars(线段树单点更新)
- 使用UltraISO制作ubuntu安装u盘启动盘图文教程
- JDBC连接Oracle数据库
- java中的生产者和消费者