2014年8月6日11:06:44



android对自己定义标签的使用。实现扁平化UI设计:

1.attrs.xml文件里自己定义标签

如:

<?xml version="1.0" encoding="utf-8"?>

<resources>





    <declare-styleable name="first">

//reference指的是是从string.xml引用过来





        <attr name="name" format="reference" />

        <attr name="age">

//flag是自定义的,类似于android:gravity="top"

            <flag name="child" value="10"></flag>

            <flag name="yong" value="18"></flag>

            <flag name="oldman" value="60"></flag>

        </attr>

//dimension 指的是是从dimension.xml里引用过来的内容.

        <attr name="testSize" format="dimension"></attr>

    </declare-styleable>





</resources>

2.在布局文件里使用自己定义标签。对标签属性进行赋值

如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

//com.example.declarestyleabletest为清单文件里包的根路径    xmlns:test="http://schemas.android.com/apk/res/com.example.declarestyleabletest"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

//MyTest见以下

    <com.example.declarestyleabletest.MyTest

        android:id="@+id/tvTest"

        test:name="@string/name"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/test"

        test:age="oldman"

        test:testSize="@dimen/size" />





</LinearLayout>

3.MyTest.java:在类中能够得到布局文件里对属性赋的值,取到值之后能够对TextView的属性进行赋值改动样式

如:

package com.example.declarestyleabletest;

import android.content.Context;

import android.content.res.TypedArray;

import android.util.AttributeSet;

import android.widget.TextView;





public class MyTest extends TextView {





public MyTest(Context context, AttributeSet attrs) {

super(context, attrs);





TypedArray tArray = context.obtainStyledAttributes(attrs,

R.styleable.first);

String name = tArray.getString(R.styleable.first_name);

int age = tArray.getInt(R.styleable.first_age, 100);

//int dimen = tArray.getInt(R.styleable.first_testSize, 110);

System.out.println("name:" + name + "age:" + age + "dimen:" );

// 复用StyledAttributes

tArray.recycle();



}

}

4.在main.activity中通过id:tvTest使用改动过样式的view对象,如本例中的TextView。

以下附上两个demo,第一个为简单的自己定义标签的赋值和取出,第二个为较为复杂的FlatUi扁平化Ui的实现。大家能够參考一下。

扁平化效果图:

http://download.csdn.net/detail/u014071669/7720493

android 自己定义标签的使用,实现扁平化UI设计的更多相关文章

  1. 基于 Bootstrap 的扁平化 UI 开发包

    Flat UI是一款基于Bootstrap的扁平化前端UI工具包,Flat UI的组件外观设计非常清新和漂亮,Flat UI的组件包含按钮,输入框,组合按钮,复选框,单选按钮,标签,菜单,进度条和滑块 ...

  2. MahApps.Metro扁平化UI控件库(可修改主题色等)

    一.名词解释 使用MahApps.Metro扁平化UI控件库,可以使界面呈现更加美观.本文将总结MahApps.Metro的使用方法,及如何自定义修改其主题颜色等. 详细内容可参考官网:https:/ ...

  3. F2工作流引擎Web层全新扁平化UI上线

    特点:引入Bootstrap开源UI样式和fontawesome图标集 扁平化样式使用界面更舒服,按钮主题可快速定义更换,对于集成到业主系统UI图标更加丰富. 以下截取部分图片展示,更多请联系作者登录 ...

  4. 你会喜欢的25个创意的扁平化 LOGO 设计

    扁平设计的风暴席卷了整个设计领域,它不仅影响网页设计,也影响了用户界面和标志设计.最近,我们看到了很多大公司,如谷歌和必应开始使用扁平设计的标识. 一个 LOGO 应该简单,显眼和精美,以适应产品的整 ...

  5. iPhone4@iOS7Beta4,第一时间刷上,失望,看来苹果是铁了心往扁平化UI走了。看好我的614,保存好SHSH准备

    1 今天早上看到新闻,iOS7Beta4放出了,于是赶紧,在家下载,网速很快.(要是在公司,那50K的速度,估计会疯的) 2 等了一会儿一直在提示准备安装,不等了,再等该迟到了. 3 路上实在忍不住, ...

  6. 【Android Studio】安卓开发初体验3.1——UI设计之常用控件

    常用控件 首先对xml文件的编辑有三种模式 Code为纯代码 Split是一边代码,一边预览效果图 Designer就是有UI设计界面 TextView 用于在界面上显示一段文本信息 所有控件都可以在 ...

  7. 扁平化设计五大原则(转自CSDN翻译)

    Cousins表示他虽然对扁平化设计的感觉非常强烈,但并没有特别热爱或者特别讨厌扁平化设计.他认为好的设计不应当局限于某种设计风格,而需要更注重可用性.有用性.如果因为时尚的缘故,那就顺其自然吧.但该 ...

  8. 怎样做出优秀的扁平化设计风格 PPT 或 Keynote 幻灯片演示文稿?(装)

    不知道你有没有想过,为什么很人多的扁平化 PPT 是这个样子: 或者是这样: 然而,还有一小撮人的扁平化 PPT 却拥有那么高颜值: 为什么会产生这么大的差距呢?丑逼 PPT 应该如何逆袭成为帅逼呢? ...

  9. AppBox升级进行时 - 扁平化的权限设计

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox v2.0中的权限实现 AppBox v2.0中权限管理中涉及三个 ...

随机推荐

  1. powerDesigner如何动态显示mysql数据库表结构

    原文链接:http://jingyan.baidu.com/article/e5c39bf5d64efa39d760333c.html 有时候,由于数据库中的表太多,主外键关系复杂,对数据库的非设计人 ...

  2. 不用@Value从Spring的ApplicationContext中获取一个或全部配置

    获取一个配置: applicationContext.getEnvironment().resolvePlaceholders("${propertyKey}"); // 方法1 ...

  3. 同一个TextView设置不同的颜色和大小

    //strategy1是一个TextView SpannableStringBuilder builder1 = new SpannableStringBuilder(strategy1.getTex ...

  4. linux使用windows中编辑的文件,格式问题

    参考:https://blog.csdn.net/yongan1006/article/details/8142527 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是 ...

  5. DNS Tunnel判定方法

    DNS Tunnel判定方法: 1.查询DNS请求的域名是否存在备案: 2.查询DNS请求的域名情报信息(以及域名的alex排名): 3.查看相同主域名下子域名编码格式及长度:(存在Base32和Ba ...

  6. Recovering unassigned shards on elasticsearch 2.x——副本shard可以设置replica为0在设置回来

    Recovering unassigned shards on elasticsearch 2.x 摘自:https://z0z0.me/recovering-unassigned-shards-on ...

  7. RAC IP 地址修改

    RAC 修改IP: 版本信息: REDHAT AS5 ORACLE 11G R2, 两个节点. 修改如下: 1.修改/etc/host(rac1,rac2) 192.168.3.205   rac-s ...

  8. 88.NODE.JS加密模块CRYPTO常用方法介绍

    转自:https://www.jb51.net/article/50668.htm 使用require('crypto')调用加密模块. 加密模块需要底层系统提供OpenSSL的支持.它提供了一种安全 ...

  9. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转

    原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...

  10. Android 设置AlertDialog的大小 .

    AlertDialog dialog = builder.setTitle("消息列表") .setView(layout) .create(); dialog.show(); / ...