android属性
Ⅰ android 系统属性怎么定义
对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:
自定义一个CustomView(extends View )类
编写values/attrs.xml,在其中编写styleable和item等标签元素
在布局文件中CustomView使用自定义的属性(注意namespace)
在CustomView的构造方法中通过TypedArray获取
ps:如果你对上述几个步骤不熟悉,建议先熟悉下,再继续~
那么,我有几个问题:
以上步骤是如何奏效的?
styleable 的含义是什么?可以不写嘛?我自定义属性,我声明属性就好了,为什么一定要写个styleable呢?
如果系统中已经有了语义比较明确的属性,我可以直接使用嘛?
构造方法中的有个参数叫做AttributeSet
(eg: MyTextView(Context context, AttributeSet attrs) )这个参数看名字就知道包含的是参数的数组,那么我能不能通过它去获取我的自定义属性呢?
TypedArray是什么鬼?从哪冒出来的,就要我去使用?
恩,针对这几个问题,大家可以考虑下,如何回答呢?还是说:老子会背上述4个步骤就够了~~
2、常见的例子
接下来通过例子来回答上述问题,问题的回答顺序不定~~大家先看一个常见的例子,即上述几个步骤的代码化。
Ⅱ android TextView 属性求解
android:soundEffectsEnabled 设置点击或触摸时是否有声音效果
android:textColorLink 文字链接的颜色.
android:shadowColor 指定文本阴影的颜色,需要与shadowRadius一起使用。
Ⅲ android里的BUTTON里的属性问题
你这看上去很是矛盾啊。。。你把右和底去掉别写。。你最下面那句是距离顶30dip..可是你上面的paddingTop为什么写成0啊。。具我实测。。这个padding 和margin 在某种意义上是一样的效果。。
Ⅳ Android属性:所设属性值为何在重起后被清除
adbsehllsetProp所设属性值在重起之后被清除。
是因为必须采用persist.开头的属性名才能永久保存。
如果拥有root权限,可直接编辑/system/build.prop并加入需要永久保存的属性。
具体操作参考原创文章:
Android属性:所设属性值为何在重起后被清除
地址:blog.csdn.net/cloudwu007/article/details/7850496
文章预览:
Ⅳ android按钮隐藏属性
设置android:visibility="gone"
在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”、“invisible”、“gone”。主要用来设置控制控件的显示和隐藏。
visible :可见
invisible:不可见,但是当前view占位(即显示空白)
gone:不可见(隐藏,不显示空白)
Ⅵ android 带 的 属性是怎么定义的
一、在res/values文件下定义一个attrs.xml文件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ToolBar">
<attr name="buttonNum" format="integer"/>
<attr name="itemBackground" format="reference|color"/>
</declare-styleable>
</resources>
二、在布局xml中如下使用该属性:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolbar="http://schemas.android.com/apk/res/cn.zzm.toolbar"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<cn.zzm.toolbar.ToolBar android:id="@+id/gridview_toolbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/control_bar"
android:gravity="center"
toolbar:buttonNum="5"
toolbar:itemBackground="@drawable/control_bar_item_bg"/>
</RelativeLayout>
三、在自定义组件中,可以如下获得xml中定义的值:
TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ToolBar);
buttonNum = a.getInt(R.styleable.ToolBar_buttonNum, 5);
itemBg = a.getResourceId(R.styleable.ToolBar_itemBackground, -1);
a.recycle();
就这么简单的三步,即可完成对自定义属性的使用。
*********************************************************************
好了,基本用法已经讲完了,现在来看看一些注意点和知识点吧。
首先来看看attrs.xml文件。
该文件是定义属性名和格式的地方,需要用<declare-styleable name="ToolBar"></declare-styleable>包围所有属性。其中name为该属性集的名字,主要用途是标识该属性集。那在什么地方会用到呢?主要是在第三步。看到没?在获取某属性标识时,用到"R.styleable.ToolBar_buttonNum",很显然,他在每个属性前面都加了"ToolBar_"。
在来看看各种属性都有些什么类型吧:string , integer , dimension , reference , color , enum.
前面几种的声明方式都是一致的,例如:<attr name="buttonNum" format="integer"/>。
只有enum是不同的,用法举例:
<attr name="testEnum">
<enum name="fill_parent" value="-1"/>
<enum name="wrap_content" value="-2"/>
</attr>
如果该属性可同时传两种不同的属性,则可以用“|”分割开即可。让我们再来看看布局xml中需要注意的事项。
首先得声明一下:xmlns:toolbar=http://schemas.android.com/apk/res/cn.zzm.toolbar
注意,“toolbar”可以换成其他的任何名字,后面的url地址必须最后一部分必须用上自定义组件的包名。自定义属性了,在属性名前加上“toolbar”即可。最后来看看java代码中的注意事项。
在自定义组件的构造函数中,用
TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ToolBar);
来获得对属性集的引用,然后就可以用“a”的各种方法来获取相应的属性值了。这里需要注意的是,如果使用的方法和获取值的类型不对的话,则会返回默认值。因此,如果一个属性是带两个及以上不用类型的属性,需要做多次判断,知道读取完毕后才能判断应该赋予何值。当然,在取完值的时候别忘了回收资源哦!
Ⅶ Android属性系统都有哪些
在Android系统里,为了让C和JAVA语言间可进行数据传输,除了使用JNI机制来处理,还可以使用属性系统来处理,这样更方便,也更容易处理,
在JAVA语言里,我们可以使用SystemProperties.get/set来处理;而在C里面,我们可以使用property_get/set来处理,相应的例子如下:
1、Java
import android.os.SystemProperties;
SystemProperties.set("persist.sys.language",zone.getID());
String.get("persist.sys.language");
其中以persist开头的属性会在/data/property目录下创建相应的文件,如果以ro开头则是只读,不可变更该属性值。
2、C
#include <cutils/properties.h>
property_set("persist.sys.language","zh");
property_get("persist.sys.language",pLang,"en");
还需要包含libcutils库。
看到上面的属性名了吧,相同的名字,这样就可以在C与JAVA之间进行属性或参数传递了,当然属性名也是有长度限制的,由PROP_NAME_MAX宏指定,而属性值也一样有限制,由PROP_VALUE_MAX宏指定,在Android源码里的frameworks/base/core/java/android/os/SystemProperties.java文件里可以查看到,对应的值分别是31和91。
Ⅷ Android 布局里的属性 android:stretchColums="*" 是什么意思
android:stretchColums="*"是设置TableRow下的列的全部列都被拉伸,有点像为TableRow每个子项加了个权限1,
TablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数,
TableRow也是容器,因此可以向TableRow里面添加其他组件,每添加一个组件该表格就增加一列。
Ⅸ Android开发之layout_gravity属性
layout_gravity 是LinearLayout 子元素的特有属性。对于layout_gravity, 该属性用于设置控件相对于容器的对齐方式,可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
本属性是android:layout_gravity属性,与 android:gravity 属同。android:gravity是LinearLayout的特有属性。android:layout_gravity是LinearLayout 子元素的特有属性,不要混淆了。
(9)android属性扩展阅读
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。