declare-styleable是给自定义控件添加自定义属性用的
1.首先,先写attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TestAttr">
<attr name="name" format="reference" />
<attr name="age">
<flag name="child" value="10" />
<flag name="young" value="18" />
<flag name="oldman" value="60" />
</attr>
<attr name="textSize" format="dimension" />
</declare-styleable>
</resources>
reference指的是是从string.xml引用过来
flag是自己定义的,类似于 android:gravity="top"
dimension 指的是是从dimension.xml里引用过来的内容.注意,这里如果是dp那就会做像素转换
2.在布局文件里的写法
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:attrstest="http://schemas.android.com/apk/res/com.arlos.attrstest"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >s
<com.arlos.attrstest.MyTestView
android:id="@+id/tvTest"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
attrstest:name="@string/myname"
android:gravity="top"
attrstest:age="young"
attrstest:textSize="@dimen/aa"
android:text="@string/hello" />
</LinearLayout>
2.1 先引用这个dtd
xmlns:attrstest="http://schemas.android.com/apk/res/com.arlos.attrstest"
attrstest是随便写的.后面的包名是你所在的项目的根包.也就是在manifest里的com.arlos.attrstest
2.2 在自定义的控件里写属性
3. 最后在控件的构造方法里取得这些值
public class MyTestView extends TextView {
public MyTestView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray tArray = context.obtainStyledAttributes(attrs,
R.styleable.TestAttr);
String name = tArray.getString(R.styleable.TestAttr_name);
System.out.println("name = " + name);
int age = tArray.getInt(R.styleable.TestAttr_age, 200);
System.out.println("age = " + age);
float demin = tArray.getDimension(R.styleable.TestAttr_textSize,0);
System.out.println("demin = " + demin);
tArray.recycle();
}
}
分享到:
相关推荐
最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleable,下面我把自己的使用感受和如何使用进行说明下。 declare-styleable:declare-...
主要介绍了Android中自定义控件的declare-styleable属性重用方案,本文给出了一个终极重用解决方案,需要的朋友可以参考下
<declare-styleable name="MyNetPic"> <attr name="lineColor" format="color"/><!-- 线的颜色 --> <attr name="cotentColor" format="color"/><!-- 图形的颜色 --> <attr name="side" format="dimension"/> <!-...
<declare-styleable name="GifImageView"> <!--gif文件引用--> <!--是否加载完自动播放--> <!--播放次放,默认永远播放--> <!--播放完成后是否停留在最后一帧,默认false--> </declare-styleable> ...
在Android开发中,往往要用到自定义的控件来实现我们的...-- resource是跟标签,可以在里面定义若干个declare-styleable --> <declare name=custom_view><!-- name定义了变量的名称 --> <attr name=custo
在assets文件夹下放images+json文件就可以动态生成gif的android lottie jar包,需要在自己工程里面的values/... <declare-styleable name="LottieAnimationView"> </declare-styleable>
android:layout_margin="8dp"/>属性说明<declare-styleable name="CircularProgressView"> name="borderWidth" format="dimension" /> // 圆弧边框的宽度 name="colorSequence" format="reference...
<declare-styleable name="MyLeftContent"> <attr name="rightPadding"></attr> </declare-styleable> 4 在主界面布局文件中(res/layout)把最外层标签换成:包名.MyLeftContent(例如:...
<declare-styleable name="DayPickerView"> <attr name="colorCurrentDay" format="color"/> <!-- 今天字体颜色 --> <attr name="colorSelectedDayBackground" format="color"/> <!-- 被选中的日期背景颜色 --> ...
自定义view起步 1,新建attrs.xml文件,增加declare-styleable 2,实现android.view.View 3,在layout.xml 使用自定义view
重写CompoundButton控件实现带... 由于DEMO中的继承CompoundButton的SwitchButton是使用自定义配置的,所以如果不了解自定义配置的可以看以下文章:android 自定义控件 使用declare-styleable进行配置属性(源码角度)
</declare-styleable>使用ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPager.setAdapter(new ViewPagerAdapter()); FlymeTabStrip tabStrip = (FlymeTabStrip) ...
water-wave-progress水波按进度上升,带环形进度条 , 支持4.0及以上版本,自定义declare-styleable name="WaterWaveProgress"样式, 全都是非必填,,布尔值默认为true
declare-styleable 在res/values目录下新建xml文件 自定义你的属性 2. AttributeSet和TypedArray 在view中获取这些属性对应的值,设置绑定到view上 3. xmlns申明与引用 在你要使用的地方引入命名空间并使用这些...
最近,看了好多的APP的等待对话框,发现自己的太lower,于是就研究了一番,最后经过苦心努力,实现一个。 自定义一个LoadingIndicatorView(extends View )类 编写values/attrs.xml,在其中编写...declare-styleable n
/declare-styleable > 第 2 步:自定义 ImageView(MyImageView.java) public class MyImageView extends ImageView { ... } 第 3 步:在布局 xml 中声明 myattr : xmlns:myattr=" " < LinearLayout xmlns:...
代码介绍:<declare-styleable name="PieGraph"> <!-- 饼状图的半径 --> name="pie_circle_radius" format="dimension" /> <!-- 选中时候的那一块往外拉的距离 --> name="pie_...
前言: 在自定义控件的时候,如果我们想额外的添加一些...declare-styleable这个标签的作用其实就是可以为我们完成很多常量(int[]数组,下标常量)等的编写,简化我们的开发工作 format还有如下类型: format 介绍
先看看效果图: ... 下拉刷新这个功能我们都比较常见了,今天介绍的就是这个功能的实现。我将按照这个开源库的范例来一点一点介绍,今天是介绍比较常见的PullToRefreshListView,是让listView有...declare-styleable na