android自定义dialog,添加了selector和shape混合使用
来源:互联网 发布:c 棋牌游戏源码 编辑:程序博客网 时间:2024/06/01 09:35
dialog基类
public abstract class BaseDialog extends Dialog { public BaseDialog(Context context) { super(context, R.style.FullScreenDialog); onCreate(); } /** 创建 */ protected abstract void onCreate(); /** 添加Viwe 宽高度参数(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) * @param layoutResID * @param layoutWidth * @param layoutHeight */ public void setContentView(int layoutResID, int layoutWidth, int layoutHeight) { setContentView(layoutResID, layoutWidth, layoutHeight, true); } /** 添加Viwe 宽高度参数(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) * @param layoutResID viewID * @param layoutWidth 宽度 * @param layoutHeight 高度 * @param cancel false is click框外 dismiss */ public void setContentView(int layoutResID, int layoutWidth, int layoutHeight, boolean cancel) { setCanceledOnTouchOutside(cancel); setContentView(layoutResID); getWindow().setLayout(layoutWidth, layoutHeight); } /** 添加Viwe 宽高度参数(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) * @param layoutResID * @param layoutWidth * @param layoutHeight */ public void setContentView(View layoutView, int layoutWidth, int layoutHeight) { setContentView(layoutView, layoutWidth, layoutHeight, true); } /** 添加Viwe 宽高度参数(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT) * @param layoutView view * @param layoutWidth 宽度 * @param layoutHeight 高度 * @param cancel false is click框外 dismiss */ public void setContentView(View layoutView, int layoutWidth, int layoutHeight, boolean cancel) { setCanceledOnTouchOutside(cancel); setContentView(layoutView); getWindow().setLayout(layoutWidth, layoutHeight); } /** 添加进出场动画 * @param anumStyleResID */ protected void setAnimations(int anumStyleResID) { getWindow().setWindowAnimations(anumStyleResID); } /** 添加相对位置 * @param gravity */ protected void setGravity(int gravity) { getWindow().setGravity(gravity); }}//基础dialog基类public class UnitSettingDialog extends BaseDialog{ private Button settingKmBut; private Button settingMilesBut; private TextView settingUnitTitle; private UnitSettingListener unitSettingListener;//按钮事件接口 public interface UnitSettingListener{ void leftButListener(View v,CharSequence butText); void rightButListener(View v,CharSequence butText); } public void unitSetListener(UnitSettingListener unitSettingListener){ this.unitSettingListener = unitSettingListener; } public UnitSettingDialog(Context context) { super(context); } @Override protected void onCreate() { setContentView(R.layout.unit_setting_dialog, DUtils.toPx(250), DUtils.toPx(160)); setGravity(Gravity.CENTER); initView(); setListener(); } private void initView() { settingUnitTitle = (TextView) findViewById(R.id.setting_unit_title); settingKmBut = (Button) findViewById(R.id.setting_km); settingMilesBut = (Button) findViewById(R.id.setting_miles); } public void settingUnitTitle(CharSequence text){ settingUnitTitle.setText(text); } private void setListener() { settingKmBut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { unitSettingListener.leftButListener(v,settingKmBut.getText()); } }); settingMilesBut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { unitSettingListener.rightButListener(v,settingMilesBut.getText()); } }); }}//R.layout.unit_setting_dialog//dialog引用的布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#00000000" > <LinearLayout android:layout_width="250dp" android:layout_height="160dp" android:layout_centerInParent="true" android:background="@drawable/bg_hint_dialog" android:orientation="vertical" > <TextView android:id="@+id/setting_unit_title" android:layout_width="match_parent" android:layout_height="100dp" android:gravity="center" android:text="" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#dbdbdb" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/setting_km" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/bg_unit_dialog_selector" android:gravity="center" android:text="@string/setting_km_unit" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="#dbdbdb" /> <Button android:id="@+id/setting_miles" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/bg_unit_dialog_selector" android:gravity="center" android:text="@string/setting_miles_unit" /> </LinearLayout> </LinearLayout></RelativeLayout>//dialog按钮效果select效果文件:圆角和点击效果//selector和shape混合使用//@drawable/bg_unit_dialog_selector<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"><shape> <solid android:color="#ffffff" /> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" /> </shape></item> <item android:state_pressed="true"><shape> <solid android:color="#F7F7F7" /> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" /> </shape></item></selector> //dialog背景效果圆角和白色背景 //@drawable/bg_hint_dialog<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 填充白色背景 --> <solid android:color="#ffffff" /><!-- 四边圆角 --> <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" android:topLeftRadius="10dp" android:topRightRadius="10dp" /></shape>
0 0
- android自定义dialog,添加了selector和shape混合使用
- Android:shape和selector使用
- Android 自定义shape selector
- selector和shape混合使用 开发技巧(一)
- Android中 shape和selector的使用
- [Android]shape和selector的结合使用
- android关于selector和shape的使用
- Android中Shape和selector的使用
- Android中shape和selector的使用
- Android:shape和selector
- Android Selector和Shape
- Android Selector和Shape
- selector,shape的自定义使用
- Android自定义矩形及selector、shape的使用
- android 结合shape和selector自定义制作立体图(节约内存)
- android自定义drawable之shape、selector和layer-list详解
- AN button自定义样式 && AN selector和shape的使用
- Android shape、selector的使用
- systemd经验
- 软件测试第一阶段总结
- Fresco(1)——一个新的android图片加载库
- [opencv] 摄像头操作
- Win7与ubuntu双系统开机找不到ubuntu引导项问题解决
- android自定义dialog,添加了selector和shape混合使用
- 逻辑地址、线性地址、物理地址以及虚拟存储器
- 深入Java集合学习系列:TreeMap实现
- 面试题28:字符串的排列
- iOS新手入门之UIView
- Fresco(2)——fresco的基本使用
- c++ primer 第四章习题(2)
- HDOJ2087 剪花布条(kmp)
- Precision & Recall & F1