`

android中自定义attr,以及style杂谈

 
阅读更多
attr 属性
style 样式
二者都是在res/values下面的xml文件

attr: for example:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


类似的"layout_height,layout_width"都是属性

style就是这个控件设定好的一些值,方便重复调用
自定义的一个样式"TextStyle"
使用的android默认的属性shadowDx..设置好的具体的值
                <style name="TextStyle">
                  <item name="android:shadowDx">-0.5</item>
                  <item name="android:shadowDy">1</item>
                  <item name="android:shadowRadius">0.5</item>
                  <item name="android:singleLine">true</item>
                  <item name="android:ellipsize">marquee</item>
                </style>


自定义的attr: 这个format就是格式
reference   表示引用,参考某一资源ID
string   表示字符串
color   表示颜色值
dimension   表示尺寸值
boolean   表示布尔值
integer   表示整型值
float   表示浮点值
fraction   表示百分数
enum   表示枚举值
flag   表示位运算

<resources>
    <declare-styleable name="ViewPagerIndicator">
        <!-- Style of the circle indicator. -->
        <attr name="vpiCirclePageIndicatorStyle" format="reference"/>
        <!-- Style of the icon indicator's views. -->
        <attr name="vpiIconPageIndicatorStyle" format="reference"/>
        <!-- Style of the line indicator. -->
        <attr name="vpiLinePageIndicatorStyle" format="reference"/>
        <!-- Style of the title indicator. -->
        <attr name="vpiTitlePageIndicatorStyle" format="reference"/>
        <!-- Style of the tab indicator's tabs. -->
        <attr name="vpiTabPageIndicatorStyle" format="reference"/>
        <!-- Style of the underline indicator. -->
        <attr name="vpiUnderlinePageIndicatorStyle" format="reference"/>
    </declare-styleable>
</resources>


使用的时候,在布局文件头里
添加
xmlns:myapp="http://schemas.android.com/apk/res/包名"

在xml文件里使用跟系统自带控件一样使用
类似下面的语法
myapp:vpiIconPageIndicatorStyle="xxxxx"

====================================================================================================================================================================
上边的如果要使用自定义的属性进行自定义样式
格式应该是
    <style name="Theme.PageIndicatorDefaults" parent="android:Theme">
        <item name="vpiIconPageIndicatorStyle">@style/Widget.IconPageIndicator</item>
        <item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item>
    </style>

//上图样式的名称是"Theme.PageIndicatorDefaults",包含两个属
//性"vpiIconPageIndicatorStyle"和"vpiTabPageIndicatorStyle",值都是引用类型的


attr和style格式都是需要<resources>起头的

获取示例:

TypedArray a = context.obtainStyledAttributes(null, R.styleable.ViewPagerIndicator,0, 0);
int rsid= a.getResourceId(R.styleable.ViewPagerIndicator_vpiTabPageIndicatorStyle, 0);
a.recycle();//必须回收
分享到:
评论

相关推荐

    Android自定义Attr属性

    首先,自定义Attr涉及到的主要步骤包括:定义属性、在资源文件中声明属性、解析属性值以及在代码中使用属性。让我们逐一探讨这些步骤: 1. **定义属性**: 在res/values目录下创建一个attr.xml文件(如果没有的话...

    android Preference自定义样式

    本篇将深入探讨如何在Android中实现`Preference`的自定义样式。 首先,理解Preference的基本用法是关键。Preference通常在XML布局文件中定义,并通过`&lt;preference-headers&gt;`标签在设置活动中声明。例如: ```xml ...

    Android自定义toolbar布局

    本教程将详细介绍如何在Android项目中自定义`Toolbar`布局。 首先,我们从`Toolbar`的基本概念开始。`Toolbar`是`android.support.v7.widget.Toolbar`类的一个实例,它是Android Support Library的一部分。它的引入...

    android studio自定义标题栏,可自定义回退按钮事件

    本篇将详细探讨如何在Android Studio中实现自定义标题栏,并自定义回退按钮事件,以及如何在右侧显示文字或图片并绑定相应的点击事件。 首先,我们需要了解Android的布局系统。标题栏(Toolbar)通常作为Activity的...

    android中自定义progressbar组件

    在Android开发中,自定义组件是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,提升应用的用户体验。本篇文章将深入探讨如何在Android中自定义一个基于逐帧动画的ProgressBar组件,即自定义loading...

    Android中自定义标题栏项目源码

    在Android应用开发中,自定义标题栏是一种常见的需求,它能提供更加个性化和与应用主题相符的用户体验。本文将深入探讨如何在Android中实现自定义标题栏,包括修改其高度和修复可能出现的显示问题。 首先,我们要...

    Android 中自定义属性(attr.xml,TypedArray)的使用

    在Android开发中,自定义属性(attr.xml, TypedArray)是一种强大的工具,它允许开发者扩展Android组件的功能,创建个性化的UI元素,同时提高代码的可重用性和可配置性。以下将详细介绍如何在Android中使用自定义...

    Android中自定义组件的过程

    在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和外观的视图。本文将深入探讨如何在Android中自定义组件,并基于Android API Demo进行讲解,帮助你理解和掌握这一核心知识...

    Android中自定义ProgressDialog实现加载滚动条效果,例如显示“请稍后……”

    下面我们将深入探讨如何在Android中自定义ProgressDialog,实现加载滚动条效果。 首先,我们需要创建一个新的布局文件,比如`custom_progress_dialog.xml`,来定义自定义对话框的视图结构。在这个布局文件中,我们...

    Android自定义加载对话框

    本文将深入探讨如何在Android中实现一个自定义加载对话框,以及如何实现显示和取消对话框的功能。 首先,我们来看一下“自定义对话框”这个概念。在Android中,系统提供了多种预设的对话框样式,如AlertDialog、...

    Android中自定义进度条详解

    总之,Android的自定义进度条涉及对`ProgressBar`控件的`android:progressDrawable`属性的修改,以及可能的`style`切换。通过理解并操作底层的XML资源文件,开发者可以创造出各种独特且富有创意的进度条效果,以满足...

    android 自定义Editext

    在Android开发中,自定义`EditText`是一种常见的需求,它允许开发者根据应用的特定需求来扩展或修改系统提供的默认编辑框功能。自定义`EditText`可以实现诸如输入格式验证、特殊样式显示、交互效果增强等多种功能。...

    【Android】自定义Button效果

    本篇将深入探讨如何在Android中实现自定义Button的效果,以及涉及到的相关知识点。 1. **自定义样式与主题** Android支持通过XML来定义按钮的样式。在`res/values/styles.xml`文件中,可以创建一个新样式,并指定...

    Android中自定义控件View

    在Android应用开发中,自定义控件(Custom View)是一个重要的技术点,它允许开发者根据需求创建具有独特功能和外观的UI元素。本教程将基于一个简单的实例来讲解如何在Android中实现自定义控件,旨在提供思路和交流...

    Android自定义View以及Layout属性

    在Android开发中,自定义View和Layout是提升应用性能、实现独特交互效果和优化界面设计的重要手段。本文将深入探讨自定义View和Layout的属性,以及如何通过源码理解和使用这些特性。 首先,自定义View的基本步骤...

    android 自定义View界面大合集

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,以实现更加丰富和个性化的交互体验。"Android 自定义View界面大合集"的主题涵盖了这个领域的广泛知识点,包括但不限于...

    Android自定义控件示例

    3. **属性和样式**:为了使自定义控件具有与系统控件类似的可配置性,可以使用`attr.xml`文件定义自定义属性,并在`style.xml`中创建样式。通过`android:attr/`引用这些属性,可以在XML布局中设置控件的外观和行为。...

    Aj_03的Android 中自定义属性(attr.xml,TypedArray)的使用(源码)

    测试:Android 中自定义属性(attr.xml,TypedArray)的使用 注意:MyView(Context context,AttributeSet attrs)构造函数的实现, 和注意main.xml的LinearLayout 里加的声明 要了解:test:textSize="20px" test:...

    Android 自定义各式各样的圆形ProgressBar

    本篇文章将深入探讨如何在Android中自定义各式各样的圆形ProgressBar。 首先,我们从基础开始。Android的ProgressBar有两种主要类型:Horizontal和Circular。Horizontal ProgressBar显示为一条水平条,随着进度增加...

    Android 自定义标题导航控件

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本文将详细讲解如何创建一个自定义的标题导航控件,分为五个关键步骤。 ### 1. 自定义控件属性的定义 首先,我们需要定义自定义控件的属性。这...

Global site tag (gtag.js) - Google Analytics