解析Android样式:布局是根本

移动开发 Android
如果你曾经是一名WEB前台设计师,如果你曾经有过设计的功底,那么你很荣幸,如果你切到Android平台中,以前的知识和经验都能很好的移植到Android平台中。不管在WEB设计还是在手机客户端设计中——布局是根本。

如果你曾经是一名WEB前台设计师,如果你曾经有过设计的功底,那么你很荣幸,如果你切到Android平台中,以前的知识和经验都能很好的移植到Android平台中。本人以为,学习是一个长期的积累过程,经验很重要,为什么有的人不管做神马生意都赚钱,因为他有经验,经验加上变通,就是智慧。

布局是根本,不管在WEB设计还是在手机客户端设计中,都是如此。如果一开始局就没有布好,就算你的细节做得再精美,到头来还是要重构。相比传统WEB设计中的布局,Android平台一样都不少,只是WEB设计的层布局,在Android中有了个新的叫法,叫帧布局。布局在本篇中不是重点,因为和WEB中的概念几乎一样,所以一笔带过。

说实话,我还是比较喜欢WEB设计中的样式命名规范,简单,易用,最主要的是WEB的样式很好管理,不像Android样式文件分得很细,看起来比较零乱。如果你研究过SDK的设计方式,你会发现一个按钮的样式,分得很细,有btn_default.xml,btn_default_small.xml等二十几个样式文件。

 下面我们模仿SDK的设计方式,自定义一个按钮样式文件btn_default.xml,包含非焦点,焦点,pressed三种不同状态。

<?xml version="1.0" encoding="utf-8"?>    
 2 <selector xmlns:android="http://schemas.android.com/apk/res/android">    
 3     <item android:state_pressed="true">    
 4         <shape>    
 5             <gradient      
 6                 android:startColor="#ff8c00"      
 7                 android:endColor="#FFFFFF"    
 8                 android:angle="270" />    
 9      
10             <stroke      
11                 android:width="2dp"      
12                 android:color="#dcdcdc" />    
13      
14             <corners      
15                 android:radius="2dp" />    
16      
17             <padding      
18                 android:left="10dp"      
19                 android:top="10dp"    
20                 android:right="10dp"      
21                 android:bottom="10dp" />    
22      
23         </shape>    
24      
25     </item>    
26      
27     <item android:state_focused="true">    
28         <shape>    
29             <gradient      
30                 android:startColor="#ffc2b7"      
31                 android:endColor="#ffc2b7"    
32                 android:angle="270" />    
33      
34             <stroke      
35                 android:width="2dp"      
36                 android:color="#dcdcdc" />    
37      
38             <corners      
39                 android:radius="2dp" />    
40      
41             <padding    
42                 android:left="10dp"      
43                 android:top="10dp"    
44                 android:right="10dp"      
45                 android:bottom="10dp" />    
46      
47         </shape>    
48      
49     </item>    
50          
51     <item>    
52         <shape>    
53             <gradient      
54                 android:startColor="#ff9d77"      
55                 android:endColor="#ff9d77"    
56                 android:angle="270" />    
57      
58             <stroke      
59                 android:width="2dp"      
60                 android:color="#fad3cf" />    
61      
62             <corners      
63                 android:radius="2dp" />    
64      
65             <padding      
66                 android:left="10dp"      
67                 android:top="10dp"    
68                 android:right="10dp"      
69                 android:bottom="10dp" />    
70      
71         </shape>    
72      
73     </item>    
74      
75 </selector      
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.

selector可以理解为状态切换器,不同的状态下切换不同的样式,在传统WEB设计中就是伪类hover。shape意为定义按钮的形状。

样式的引用很简单,Android统一把样式文件作为她的一种资源,下面是样式的使用方式。

<Button 
2                 android:background="@drawable/btn_default" 
3                 android:layout_width="wrap_content"   
4                 android:layout_height="wrap_content" 
5                 android:text="test Style" 
6             > 
7               
8             </Button> 
9               
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

 效果

  

总结

 整体来说,Android的样式设计非常的灵活,WEB设计中的大部分概念都适用于Android平台,包括样式的继承概念。

注:本文版权归作者所有,点此 原文连接

【编辑推荐】

  1. 用Android搭建客户端 手机和服务器交互开发实例
  2. Android学习笔记:androidmanifest.xml解析
  3. 21个免费的UI界面设计工具、资源及网站
责任编辑:佚名 来源: 一尘博客
相关推荐

2011-09-07 14:34:55

Android Wid控件

2014-12-10 10:37:45

Android自定义布局

2012-08-03 09:09:59

网页设计设计

2009-06-30 19:16:05

数据中心节能虚拟化

2011-04-06 10:36:21

2010-09-14 08:53:06

DIVTable

2010-04-06 11:23:48

2014-09-29 09:38:10

BASHBUG

2009-12-28 16:20:50

WPF内嵌样式

2011-06-16 21:06:18

打印机推荐

2014-06-12 13:53:24

用友用友UAP

2018-09-25 15:45:03

多云灾难恢复云平台

2017-06-26 10:43:22

互联网

2014-07-29 15:23:06

Android

2021-12-02 09:04:05

布局问题文字对齐图片设计

2010-09-01 08:58:58

2010-09-01 13:17:42

CSS样式表

2010-08-05 13:14:16

Flex布局

2021-10-27 16:52:37

LayoutInfl源码解析

2009-12-29 09:54:27

WPF文字布局
点赞
收藏

51CTO技术栈公众号