常见android中的style
16lz
2021-01-26
自定义对话框设置style
<style name="TipsDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowFullscreen">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowBackground">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style>
<style name="myDialogTheme" parent="android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item><!--除去title--> <item name="android:windowContentOverlay">@null</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowBackground">@null</item><!--除去背景色-->
一般我们将一些公共属性抽象出来做为一个个style,在xml中直接引用style即可,既减少了代码而且在style发生变化的时候一处改变所引用的地方均变化
<style name="layout_match_parent"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">match_parent</item> </style> <style name="layout_wrap_content"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> </style> <style name="layout_weight_horizontal"> <item name="android:layout_width">0dip</item> <item name="android:layout_height">match_parent</item> </style> <style name="layout_weight_vertical"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">0dip</item> </style>
具体使用方式:例如我们需要自定义一个dialog,不需要dialog的title代码如下:
/** * 图片放大dialog * * @author jone * * 2014年5月13日 com.tiza.tree.xingchang_line.widget * */public class ImageDialog extends Dialog implementsandroid.view.View.OnClickListener {public ImageDialog(Context context, int theme) {super(context, theme);}ImageView imageView;Button repeatButton;Button cancleButton;View rootView;LayoutInflater inflater;public static final int POSITIVE = 1;public static final int NEGATIVE = 2;public ImageDialog(Context context) {//调用自定义的style,用来去掉dialog默认的titlethis(context, R.style.MyDialog);inflater = LayoutInflater.from(context);init();wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);dm = new DisplayMetrics();wm.getDefaultDisplay().getMetrics(dm);screenWidth = dm.widthPixels;screenHeight = dm.heightPixels;Log.i("tag", screenHeight+":"+screenHeight);}public Button getRightButton(){return repeatButton;}private void init() {rootView = inflater.inflate(R.layout.xc_img_dialog, null);setContentView(rootView);imageView = (ImageView) rootView.findViewById(R.id.xc_big_img_);repeatButton = (Button) rootView.findViewById(R.id.xc_big_left);cancleButton = (Button) rootView.findViewById(R.id.xc_big_right);repeatButton.setOnClickListener(this);cancleButton.setOnClickListener(this);}public void setImageView(BitmapDrawable drawable) {imageView.setImageDrawable(drawable);}public void setDialogLayoutParamtrs(){LayoutParams params = new LayoutParams(screenWidth-20, screenHeight-200);params.setMargins(10, 25, 10, 10);imageView.setLayoutParams(params);}public interface ImageListener {public void onButtonClick(int id);}public ImageListener listener;private DisplayMetrics dm;private WindowManager wm;private int screenWidth;private int screenHeight;public void setImageListener(ImageListener listener) {this.listener = listener;}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.xc_big_left:if (listener != null) {listener.onButtonClick(POSITIVE);}break;case R.id.xc_big_right:if (listener != null) {listener.onButtonClick(NEGATIVE);}break;default:break;}}
更多相关文章
- !!!Android开发、测试持续集成环境Jenkins搭建
- 安桌HttpURLConnection错误解决
- Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android(安卓)JNI 高级篇
- 【Android(安卓)SDK 开发】安卓开发常用工具和第三方库汇总
- android使用AIDL跨进程通信(IPC)
- 关于Android(安卓)Studio无法查看详细的源代码问题解决
- Android(安卓)Studio3.6新特性:视图绑定ViewBinding使用指南(Java
- java做服务器,android做客户端,实现数据传输