2014-10-25Android学习------布局处理(二)----软件的版本介绍布局---颜色---像素

我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个HealthFood 源码 

百度搜就知道很多下载的地方

布局的知识需要不断的积累并实用,所以我采取了这样的方式,而不是先去看文档介绍中的所有关于属性的知识点,觉得那样挺累,也也记不住

这里的学习接前面的布局处理(一),地址:http://blog.csdn.net/u014737138/article/details/40477309


这里学习的是一个关于软件版本的一个简单的布局:

主要学习:ScrollView布局  TextView 控件  以及在布局之间的嵌套   (ScrollView布局里面含有LinearLayout布局)

首先看效果图:


源码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:gravity="center"
            android:text="@string/abouttitle"
            android:textColor="@color/black"
            android:textSize="15dip" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20px"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:maxLines="21"
            android:text="@string/text1"
            android:textColor="@color/black"
            android:textSize="12dip"
            android:width="10px" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:gravity="center"
            android:maxLines="21"
            android:text="@string/title2"
            android:textColor="@color/black"
            android:textSize="15dip" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20px"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:maxLines="21"
            android:text="@string/text2"
            android:textColor="@color/black"
            android:textSize="12dip"
            android:width="10px" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:gravity="center"
            android:maxLines="21"
            android:text="@string/title3"
            android:textColor="@color/black"
            android:textSize="15dip" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20px"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:maxLines="21"
            android:text="@string/text3"
            android:textColor="@color/black"
            android:textSize="12dip"
            android:width="10px" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:gravity="center"
            android:maxLines="21"
            android:text="@string/title4"
            android:textColor="@color/black"
            android:textSize="15dip" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20px"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:maxLines="21"
            android:text="@string/text4"
            android:textColor="@color/black"
            android:textSize="12dip"
            android:width="10px" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:drawableBottom="@drawable/divider"
            android:gravity="bottom"
            android:paddingLeft="100px"
            android:text="@string/email"
            android:textColor="@color/black"
            android:textSize="12dip" />
    </LinearLayout>

</ScrollView>

还未学习的知识点有:

1.布局的嵌套:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white" >

    <LinearLayout
	>


    </LinearLayout>

</ScrollView>

按照上面的格式和显示的结果来看,我们很清楚明白这个原理了,不用解释了

2.关于属性的知识点:

1)android:background="@color/white" >  这里设置背景采用的是一个白色的颜色,它取值是从资源文件color里面获取的一个name为white的值

color.xml的定义和string.xml的定义一样,new一个Android xml file,命名为color   

然后定义一个name="white"的color就可以。

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

    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>

</resources>

2)android:drawableBottom        

 //在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者


这里设置的图片就是一条横线。

3)       android:text="@string/abouttitle"       设置文本,它的值时资源文件string中name=abouttitle的值
            android:textColor="@color/black"      设置文本的颜色
            android:textSize="15dip" />                设置文本的大小   推荐度量单位”sp”,如”15sp”


拓展:

1.Android 常用RGB值以及中英文名称

 

颜 色 

RGB值

英文名

中文名

 

 

#FFB6C1

LightPink

浅粉红

 

#FFC0CB

Pink

粉红

 

#DC143C

Crimson

深红/猩红

 

#FFF0F5

LavenderBlush

淡紫红

 

#DB7093

PaleVioletRed

弱紫罗兰红

 

#FF69B4

HotPink

热情的粉红

 

#FF1493

DeepPink

深粉红

 

#C71585

MediumVioletRed

中紫罗兰红

 

#DA70D6

Orchid

暗紫色/兰花紫

 

#D8BFD8

Thistle

蓟色

 

#DDA0DD

Plum

洋李色/李子紫

 

#EE82EE

Violet

紫罗兰

 

#FF00FF

Magenta

洋红/玫瑰红

 

#FF00FF

Fuchsia

紫红/灯笼海棠

 

#8B008B

DarkMagenta

深洋红

 

#800080

Purple

紫色

 

#BA55D3

MediumOrchid

中兰花紫

 

#9400D3

DarkViolet

暗紫罗兰

 

#9932CC

DarkOrchid

暗兰花紫

 

#4B0082

Indigo

靛青/紫兰色

 

#8A2BE2

BlueViolet

蓝紫罗兰

 

#9370DB

MediumPurple

中紫色

 

#7B68EE

MediumSlateBlue

中暗蓝色/中板岩蓝

 

#6A5ACD

SlateBlue

石蓝色/板岩蓝

 

#483D8B

DarkSlateBlue

暗灰蓝色/暗板岩蓝

 

#E6E6FA

Lavender

淡紫色/熏衣草淡紫

 

#F8F8FF

GhostWhite

幽灵白

 

#0000FF

Blue

纯蓝

 

#0000CD

MediumBlue

中蓝色

 

#191970

MidnightBlue

午夜蓝

 

#00008B

DarkBlue

暗蓝色

 

#000080

Navy

海军蓝

 

#4169E1

RoyalBlue

皇家蓝/宝蓝

 

#6495ED

CornflowerBlue

矢车菊蓝

 

#B0C4DE

LightSteelBlue

亮钢蓝

 

#778899

LightSlateGray

亮蓝灰/亮石板灰

 

#708090

SlateGray

灰石色/石板灰

 

#1E90FF

DodgerBlue

闪兰色/道奇蓝

 

#F0F8FF

AliceBlue

爱丽丝蓝

 

#4682B4

SteelBlue

钢蓝/铁青

 

#87CEFA

LightSkyBlue

亮天蓝色

 

#87CEEB

SkyBlue

天蓝色

 

#00BFFF

DeepSkyBlue

深天蓝

 

#ADD8E6

LightBlue

亮蓝

 

#B0E0E6

PowderBlue

粉蓝色/火药青

 

#5F9EA0

CadetBlue

军兰色/军服蓝

 

#F0FFFF

Azure

蔚蓝色

 

#E0FFFF

LightCyan

淡青色

 

#AFEEEE

PaleTurquoise

弱绿宝石

 

#00FFFF

Cyan

青色

 

#00FFFF

Aqua

浅绿色/水色

 

#00CED1

DarkTurquoise

暗绿宝石

 

#2F4F4F

DarkSlateGray

暗瓦灰色/暗石板灰

 

#008B8B

DarkCyan

暗青色

 

#008080

Teal

水鸭色

 

#48D1CC

MediumTurquoise

中绿宝石

 

#20B2AA

LightSeaGreen

浅海洋绿

 

#40E0D0

Turquoise

绿宝石

 

#7FFFD4

Aquamarine

宝石碧绿

 

#66CDAA

MediumAquamarine

中宝石碧绿

 

#00FA9A

MediumSpringGreen

中春绿色

 

#F5FFFA

MintCream

薄荷奶油

 

#00FF7F

SpringGreen

春绿色

 

#3CB371

MediumSeaGreen

中海洋绿

 

#2E8B57

SeaGreen

海洋绿

 

#F0FFF0

Honeydew

蜜色/蜜瓜色

 

#90EE90

LightGreen

淡绿色

 

#98FB98

PaleGreen

弱绿色

 

#8FBC8F

DarkSeaGreen

暗海洋绿

 

#32CD32

LimeGreen

闪光深绿

 

#00FF00

Lime

闪光绿

 

#228B22

ForestGreen

森林绿

 

#008000

Green

纯绿

 

#006400

DarkGreen

暗绿色

 

#7FFF00

Chartreuse

黄绿色/查特酒绿

 

#7CFC00

LawnGreen

草绿色/草坪绿

 

#ADFF2F

GreenYellow

绿黄色

 

#556B2F

DarkOliveGreen

暗橄榄绿

 

#9ACD32

YellowGreen

黄绿色

 

#6B8E23

OliveDrab

橄榄褐色

 

#F5F5DC

Beige

米色/灰棕色

 

#FAFAD2

LightGoldenrodYellow

亮菊黄

 

#FFFFF0

Ivory

象牙色

 

#FFFFE0

LightYellow

浅黄色

 

#FFFF00

Yellow

纯黄

 

#808000

Olive

橄榄

 

#BDB76B

DarkKhaki

暗黄褐色/深卡叽布

 

#FFFACD

LemonChiffon

柠檬绸

 

#EEE8AA

PaleGoldenrod

灰菊黄/苍麒麟色

 

#F0E68C

Khaki

黄褐色/卡叽布

 

#FFD700

Gold

金色

 

#FFF8DC

Cornsilk

玉米丝色

 

#DAA520

Goldenrod

金菊黄

 

#B8860B

DarkGoldenrod

暗金菊黄

 

#FFFAF0

FloralWhite

花的白色

 

#FDF5E6

OldLace

老花色/旧蕾丝

 

#F5DEB3

Wheat

浅黄色/小麦色

 

#FFE4B5

Moccasin

鹿皮色/鹿皮靴

 

#FFA500

Orange

橙色

 

#FFEFD5

PapayaWhip

番木色/番木瓜

 

#FFEBCD

BlanchedAlmond

白杏色

 

#FFDEAD

NavajoWhite

纳瓦白/土著白

 

#FAEBD7

AntiqueWhite

古董白

 

#D2B48C

Tan

茶色

 

#DEB887

BurlyWood

硬木色

 

#FFE4C4

Bisque

陶坯黄

 

#FF8C00

DarkOrange

深橙色

 

#FAF0E6

Linen

亚麻布

 

#CD853F

Peru

秘鲁色

 

#FFDAB9

PeachPuff

桃肉色

 

#F4A460

SandyBrown

沙棕色

 

#D2691E

Chocolate

巧克力色

 

#8B4513

SaddleBrown

重褐色/马鞍棕色

 

#FFF5EE

Seashell

海贝壳

 

#A0522D

Sienna

黄土赭色

 

#FFA07A

LightSalmon

浅鲑鱼肉色

 

#FF7F50

Coral

珊瑚

 

#FF4500

OrangeRed

橙红色

 

#E9967A

DarkSalmon

深鲜肉/鲑鱼色

 

#FF6347

Tomato

番茄红

 

#FFE4E1

MistyRose

浅玫瑰色/薄雾玫瑰

 

#FA8072

Salmon

鲜肉/鲑鱼色

 

#FFFAFA

Snow

雪白色

 

#F08080

LightCoral

淡珊瑚色

 

#BC8F8F

RosyBrown

玫瑰棕色

 

#CD5C5C

IndianRed

印度红

 

#FF0000

Red

纯红

 

#A52A2A

Brown

棕色

 

#B22222

FireBrick

火砖色/耐火砖

 

#8B0000

DarkRed

深红色

 

#800000

Maroon

栗色

 

#FFFFFF

White

纯白

 

#F5F5F5

WhiteSmoke

白烟

 

#DCDCDC

Gainsboro

淡灰色

 

#D3D3D3

LightGrey

浅灰色

 

#C0C0C0

Silver

银灰色

 

#A9A9A9

DarkGray

深灰色

 

#808080

Gray

灰色

 

#696969

DimGray

暗淡灰

 

#000000

Black

纯黑

地址:http://blog.sina.com.cn/s/blog_759dc36b0100su90.html

2)Android中dip、dp、sp、pt和px的区别

1、概述
        过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题。Android应用开发支持不同的度量单位。

android虚拟机里的像素名称对应的实际值 
WVGA800 480×800像素
WVGA854 480×854像素
WXGA800 800×1280像素
WXGA720 720×1280像素
HVGA  360×480像素
QVGA  240×320像素
WQVGA400 240×400像素
WQVGA432 240×432像素
WSVGA  600×1024像素
2、度量单位含义
      dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,

一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 
     dp: dip是一样的
     px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
     pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
     sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

     in(英寸):长度单位。 
    mm(毫米):长度单位。

3、度量单位的换算公式
    在android源码包TypedValue.java中,我们看如下函数

    public static float applyDimension(int unit, float value,DisplayMetrics metrics)

   {
        switch (unit) {
        case COMPLEX_UNIT_PX:
            return value;
        case COMPLEX_UNIT_DIP:
            return value * metrics.density;
        case COMPLEX_UNIT_SP:
            return value * metrics.scaledDensity;
        case COMPLEX_UNIT_PT:
            return value * metrics.xdpi * (1.0f/72);
        case COMPLEX_UNIT_IN:
            return value * metrics.xdpi;
        case COMPLEX_UNIT_MM:
            return value * metrics.xdpi * (1.0f/25.4f);
        }
        return 0;
    }

   该函数功能:是把各单位换算为像素。
   metrics.density:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;
   metrics.scaledDensity:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;
   metrics.xdpi:默认值为DENSITY_DEVICE;
   DENSITY_DEVICE:为屏幕密度
   DENSITY_DEFAULT:默认值为160

4、屏幕密度:表示每英寸有多少个显示点,与分辨率是两个不同的概念。



5、综上所述    
  据px = dip * density / 160,则当屏幕密度为160时,px = dip
  根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。将dip作为其他元素的单位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值