android 自定义 styleable 属性

1.定义

attr.xml中定义 

<resources>
    <declare-styleable name="ViewFlow">
        <attr name="sidebuffer" format="integer" />
    </declare-styleable>
    <declare-styleable name="CircleFlowIndicator">
        <attr name="activeColor" format="color" />
        <attr name="inactiveColor" format="color" />
        <attr name="radius" format="dimension" />
        <attr name="spacing" format="dimension" />
        <attr name="centered" format="boolean" />
        <attr name="fadeOut" format="integer" />
        <attr name="inactiveType">
            <flag name="stroke" value="0" />
            <flag name="fill" value="1" />
        </attr>
        <attr name="activeType">
            <flag name="stroke" value="0" />
            <flag name="fill" value="1" />
        </attr>
        <attr name="snap" format="boolean" />
    </declare-styleable>
    <declare-styleable name="TitleFlowIndicator">
        <attr name="titlePadding" format="dimension" />
        <!-- Left/right padding of not active view titles. -->
        <attr name="clipPadding" format="dimension" />
        <attr name="selectedColor" format="color" />
        <attr name="selectedBold" format="boolean" />
        <attr name="selectedSize" format="dimension" />
        <attr name="textColor" format="color" />
        <attr name="textSize" format="dimension" />
        <attr name="footerLineHeight" format="dimension" />
        <attr name="footerColor" format="color" />
        <attr name="footerTriangleHeight" format="dimension" />
        <attr name="customTypeface" format="string" />
    </declare-styleable>
</resources>

相关字段

resources -> declare-styleable ->attr( name ,format (color,dimension,boolean,string,integer,))  or -> flag(name,value)

2.layout中的使用

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/org.taptwo.android.widget.viewflow.example"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <org.taptwo.android.widget.CircleFlowIndicator
        android:padding="10dip"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/viewflowindic"
        android:layout_gravity="center_horizontal"
        app:inactiveType="fill"
        app:fadeOut="1000" />
    <org.taptwo.android.widget.ViewFlow
        android:id="@+id/viewflow" android:layout_width="fill_parent"
        android:layout_height="fill_parent" app:sidebuffer="3"></org.taptwo.android.widget.ViewFlow>

</FrameLayout>

  1.xmlns:app="http://schemas.android.com/apk/res/org.taptwo.android.widget.viewflow.example"

  app为自定义标签前缀 路径为 http://schemas.android.com/apk/res + 资源路径(包名)

  2.app:inactiveType="fill"   app:fadeOut="1000"  app:textColor="#FFFFFFFF"  app:footerTriangleHeight="10dp" app:customTypeface="fonts/Antic.ttf"

 如上定义  inactivieType是自定义类型 fadeOut是integer类型 textColor是color类型 footerTriangleHeight是dimension类型  customTypeface是string类型3.view中读取
    TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.CircleFlowIndicator);

        // Gets the active circle type, defaulting to "fill"
        int activeType = a.getInt(R.styleable.CircleFlowIndicator_activeType,
                STYLE_FILL);

        int activeDefaultColor = 0xFFFFFFFF;

        // Get a custom active color if there is one
        int activeColor = a
                .getColor(R.styleable.CircleFlowIndicator_activeColor,
                        activeDefaultColor);

如上 1.obtion TypedArray 2.getInt getColor 等

时间: 2024-11-02 17:03:33

android 自定义 styleable 属性的相关文章

android 自定义View属性

在android开发过程中,用到系统的View时候可以通过XML来定义一些View的属性.比如ImageView: android:src  和android:scaleType为ImageView指定了图片源和图片缩放类型. 其实我们也可以自定义图片的这种属性. 下面以自定义标题栏为例,简单说明下自定义View属性. 比如在项目中,经常会用到标题栏,左边是返回,中间是标题,右边是下一步.如下图: 如果,每一次用到标题都在XML里面进行布局,那就太麻烦了.我们可以自定义一个标题栏. 自定义Vie

Android自定义 view属性

第一种 /MainActivity/res/values/attrs.xml   <?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="MyCircle"> <attr name="radius" format="integer"/> <attr name=&

android自定义view属性

方法一: MyView.class package com.bwie.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; public class MyView ext

android自定义视图属性(atts.xml,TypedArray)学习

是一个用于存放恢复obtainStyledAttributes(AttributeSet, int[], int, int)或 obtainAttributes(AttributeSet, int[])  值的一个数组容器,当操作完成以后,一定要调用recycle()方法.用于检索的索引值在这个结构对应的位置给obtainStyledAttributes属性. 使用这个类的时候,先要在valuse文件夹下创建:atts.xml文件: [html] view plaincopy <?xml ver

android 自定义view+属性动画实现充电进度条

近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和自定义view的方式来完成这个功能,将它开源出来,供有需要的人了解一下相关的内容. 本次实现的功能类似下面的效果: 接下来便详细解析一下如何完成这个功能,了解其中的原理,这样就能举一反三,实现其他类似的动画效果了. 详细代码请看大屏幕 https://github.com/crazyandcoder

Android自定义XML属性

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="RatioLayout"> <attr name="picRatio" format="float" /> <attr name="relative"> <enum nam

Android 自定义View、ViewGroup和自定义属性

一.Android自定义view属性 1.在res/values/styles.xml文件里面声明一个我们自定义的属性: <resources> <!--name为声明的"属性集合"名,可以随便取,但是最好是设置为跟我们的View一样的名称--> <declare-styleable name="CircleView"> <!--声明我们的属性,名称为default_size,取值类型为尺寸类型(dp,px等)-->

Android中View自定义XML属性详解以及R.attr与R.styleable的区别

为View添加自定义XML属性 Android中的各种Widget都提供了很多XML属性,我们可以利用这些XML属性在layout文件中为Widget的属性赋值. 如下所示: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 我们可以通过TextView所提供

UI--从学习styleable自定义view属性到一点儿更有意思的尝试

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45599593 [导航] - 多行文本折叠展开 自定义布局View实现多行文本折叠和展开 1.概述 前面封装view的时候用到了自定义属性,觉得有必要单独讲一下这部分,但是呢,又不想向其他文章一样千篇一律地写这些东西.所以呢,后便会加一些临时的发散思维,引用点有意思的东西.分享东西嘛,随性点儿. 回