我们在开发中经常需要为了保持应用在不同的移动设备平台下显示统一的UI风格,毕竟各个平台厂商针对界面风格进行自定义导致UI风格千变万化。所以我们需要使用自定义属性。

Step1:资源文件、values.attrs.xml中定义属性

<resources>    <declare-styleable name="userDefinedView">        <attr name="Text" format="string"/>    </declare-styleable></resources>

Step2:code in class file

    private void getTypedArray(Context context, AttributeSet attrs) {        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.userDefinedView);        Text = a.getString(R.styleable.userDefinedView_Text);        a.recycle();    }    ...    private void setTextView(String text) {        TextView.setText(text);    }

说一下a.recycle()的作用,TypedArray.recycle()是为了将typedArray缓存起来重用,不必每次使用都要重新分配内存。
Step3:应用

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" **xmlns:app="http://schemas.android.com/apk/res-auto"** xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">    <com.example.userdefinedClass  android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/definedView" **app:Text="sth...."**/></RelativeLayout>

这里面加粗的两个地方是我们要自定义属性需要的,通过xmlns:app来定义命名空间,然后在下面就可以使用app:Text即我们自定义的属性了。

更多相关文章

  1. gradle批量打包Android(安卓)apk:不同的包使用不同的icon、label
  2. Android仿淘宝添加商品时属性规格popupwindow
  3. ArrayList动态删除 自定义Adapter (附源码)
  4. Android(安卓)api28 tablayout改变
  5. Android(安卓)studio 自定义logcat各种信息输出颜色
  6. Android(安卓)自定义下拉刷新列表
  7. Android(安卓)自定义Spinner显示条目与下拉框的布局
  8. Android——自定义TabLayout背景,实现类似浏览器中的选项卡效果,修
  9. Android(安卓)ZXing 超简单的实现二维码扫描、可以自定义界面

随机推荐

  1. 个人帐号密码信息管理(PAPIM)软件构想
  2. apk分享: Android应用更换皮肤功能的实现
  3. android volatile的使用
  4. android > android 发布各大市场
  5. Android Junit 单元测试步骤
  6. gson使用在android使用例子
  7. Android 拍照及相册选图的那些坑
  8. android 设置bitmap 设置图片的大小
  9. android SQLiteDatebase 实践
  10. Ubuntu上安装和使用Android Studio