Android 自定义控件属性,自定义Dialog定位
来源:互联网 发布:淘宝关键字优化技巧 编辑:程序博客网 时间:2024/05/04 05:15
Android自定义控件的属性,网上文章已经很多,之前看了也照着写了,其中有一个就是要自定义一个xml的命名空间后然后再给自定义属性赋值,后来发现不知道什么时候开始Android把这个改了,统一用
xmlns:app="http://schemas.android.com/apk/res-auto"然后在用app作为命名空间给自定义属性赋值,例如:app:myimage_src="@drawable/myimage"
当然了,这个属性肯定是要在res/values/attrs.xml 里面声明过:
<resources>
<declare-styleable name="CusComponent">
<attr name="myimage_src" format="reference"/>
</declare-styleable>
</resources>
此外,format 还有很多的属性,例如boolean,enum:如官方例子:
<resources> <declare-styleable name="PieChart"> <attr name="showText" format="boolean" /> <attr name="labelPosition" format="enum"> <enum name="left" value="0"/> <enum name="right" value="1"/> </attr> </declare-styleable></resources>
然后在代码总获取到你设置的属性:
在两参数的构造函数中:
public CustomComponent(Context context, AttributeSet attrs) {super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CusComponent);
int imageSrcId;
try {
imageSrcId = a.getResourceId(R.styleable.CusComponent_myimage_src,R.drawable.myimage);
finally {
a.recycle();
}
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.custom_component_layout, this, true); // 给自定义控件设置布局
b = (ImageButton)findViewById(R.id.btn); // 获取到布局上的ImageButton
b.setImageResource(imageSrcId);
}
当然其实还有很多个方法都是可以获取到属性的,这个比较简单而已。
需要注意的是,通常,我们在给自定义的控件设置好属性后会调用invalidate() 和 requestLayout() 方法对UI进行刷新,确保其显示。
以上是自定义控件属性的一些基本知识,然后项目中在做自定义控件的时候还学习了自定义dialog的定位:
代码很简单:
Dialog dialog = new Dialog(MainActivity.this, R.style.dialog);Window window = dialog.getWindow();WindowManager.LayoutParams wlp = window.getAttributes();wlp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;window.setAttributes(wlp);dialog.setContentView(R.layout.cloud_dialog_view);dialog.show();
- Android 自定义控件属性,自定义Dialog定位
- Android 自定义控件属性,自定义Dialog定位
- Android 自定义控件属性,自定义Dialog定位
- Android 自定义控件属性,自定义Dialog定位
- Android 自定义控件属性,自定义Dialog定位
- Android自定义控件-dialog
- 【android控件】dialog自定义布局
- Android自定义控件 自定义属性
- Android 自定义控件 自定义属性
- android 自定义控件自定义属性
- Android自定义控件(五)自定义Dialog QuickOptionDialog
- android 自定义控件属性
- Android自定义控件属性
- android 自定义控件属性
- Android自定义控件属性
- Android自定义控件属性
- Android自定义控件属性
- Android自定义控件属性
- Could not open the editor: URLDecoder: Illegal hex characters in escape (%) pattern - For input stri
- 统计之常用的分布
- MySQL函数用法
- 聊聊高并发(六)实现几种自旋锁(一)
- UILocalNotification
- Android 自定义控件属性,自定义Dialog定位
- Java中动态代理
- jquery select 获取下拉列表对象 radio 获取单选对象
- 在iOS的XCode工程配置中为什么要用-all_load&-ObjC
- mysql 的load data infile
- 黑马程序员 Java学习总结之同步、线程间通信
- App Store审核指南中文版(2014.10.11更新)
- 关于Photoshop的网格对不齐的解决办法
- BZOJ 2141 排队 分块+树状数组