首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門(mén) / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 13566|回復(fù): 0
上一主題 下一主題
[教程]

android shape的屬性及用法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
9首先說(shuō)明文章是復(fù)制的 只是為了自己能力的提升,如果你喜歡,也可以記錄下來(lái)請(qǐng)勿吐槽,謝謝   
   
Android中常常使用shape來(lái)定義控件的一些顯示屬性,今天看了一些shape的使用,對(duì)shape有了大體的了解,稍作總結(jié):   
先看下面的代碼:   
        <shape>   
            <!-- 實(shí)心 -->   
            <solid android:color="#ff9d77"/>   
            <!-- 漸變 -->   
            <gradient   
                android:startColor="#ff8c00"   
                android:endColor="#FFFFFF"   
                android:angle="270" />   
            <!-- 描邊 -->   
            <stroke   
                android:width="2dp"   
                android:color="#dcdcdc" />   
            <!-- 圓角 -->   
            <corners   
                android:radius="2dp" />   
            <padding   
                android:left="10dp"   
                android:top="10dp"   
                android:right="10dp"   
                android:bOTTom="10dp" />   
        </shape>solid:實(shí)心,就是填充的意思   
android:color指定填充的顏色   
   
gradient:漸變   
android:startColor和android:endColor分別為起始和結(jié)束顏色,ndroid:angle是漸變角度,必須為45的整數(shù)倍。   
另外漸變默認(rèn)的模式為android:type="linear",即線性漸變,可以指定漸變?yōu)閺较驖u變,android:type="radial",徑向漸變需要指定半徑android:gradientRadius="50"。   
   
stroke:描邊   
android:width="2dp" 描邊的寬度,android:color 描邊的顏色。   
我們還可以把描邊弄成虛線的形式,設(shè)置方式為:   
android:dashWidth="5dp"   
android:dashGap="3dp"   
其中android:dashWidth表示-這樣一個(gè)橫線的寬度,android:dashGap表示之間隔開(kāi)的距離。   
   
corners:圓角   
android:radius為角的弧度,值越大角越圓。   
我們還可以把四個(gè)角設(shè)定成不同的角度,方法為:   
<corners   
        android:topRightRadius="20dp"    右上角   
        android:bottomLeftRadius="20dp"    右下角   
        android:topLeftRadius="1dp"    左上角   
        android:bottomRightRadius="0dp"    左下角   
/>   
這里有個(gè)地方需要注意,bottomLeftRadius是右下角,而不是左下角,這個(gè)有點(diǎn)郁悶,不過(guò)不影響使用,記得別搞錯(cuò)了就行。   
還有網(wǎng)上看到有人說(shuō)設(shè)置成0dp無(wú)效,不過(guò)我在測(cè)試中發(fā)現(xiàn)是可以的,我用的是2.2,可能修復(fù)了這個(gè)問(wèn)題吧,如果無(wú)效的話那就只能設(shè)成1dp了。   
   
padding:間隔   
這個(gè)就不用多說(shuō)了,XML布局文件中經(jīng)常用到。   
   
   
大體的就是這樣,以下是一個(gè)使用的具體示例:用在Selector中作為Button的背景,分別定義了按鈕的一般狀態(tài)、獲得焦點(diǎn)狀態(tài)和按下時(shí)的狀態(tài),具體代碼如下:   
   
main.xml:   
<Button   
    android:layout_width="wrap_content"   
    android:layout_height="wrap_content"   
    android:text="TestShapeButton"   
    android:background="@drawable/button_selector"   
    />   
   
button_selector.xml:   
<?xml version="1.0" encoding="utf-8"?>   
<selector   
    xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:state_pressed="true" >   
        <shape>   
            <!-- 漸變 -->   
            <gradient   
                android:startColor="#ff8c00"   
                android:endColor="#FFFFFF"   
                android:type="radial"   
                android:gradientRadius="50" />   
            <!-- 描邊 -->   
            <stroke   
                android:width="2dp"   
                android:color="#dcdcdc"   
                android:dashWidth="5dp"   
                android:dashGap="3dp" />   
            <!-- 圓角 -->   
            <corners   
                android:radius="2dp" />   
            <padding   
                android:left="10dp"   
                android:top="10dp"   
                android:right="10dp"   
                android:bottom="10dp" />   
        </shape>   
    </item>   
   
    <item android:state_focused="true" >   
        <shape>   
            <gradient   
                android:startColor="#ffc2b7"   
                android:endColor="#ffc2b7"   
                android:angle="270" />   
            <stroke   
                android:width="2dp"   
                android:color="#dcdcdc" />   
            <corners   
                android:radius="2dp" />   
            <padding   
                android:left="10dp"   
                android:top="10dp"   
                android:right="10dp"   
                android:bottom="10dp" />   
        </shape>   
    </item>   
   
    <item>         
        <shape>   
            <solid android:color="#ff9d77"/>   
            <stroke   
                android:width="2dp"   
                android:color="#fad3cf" />   
            <corners   
                android:topRightRadius="5dp"   
                android:bottomLeftRadius="5dp"   
                android:topLeftRadius="0dp"   
                android:bottomRightRadius="0dp"   
            />   
            <padding   
                android:left="10dp"   
                android:top="10dp"   
                android:right="10dp"   
                android:bottom="10dp" />   
        </shape>   
    </item>   
</selector>運(yùn)行效果如下圖:一般狀態(tài):     
獲得焦點(diǎn)狀態(tài):     
按下?tīng)顟B(tài):     

上一篇:Android游戲開(kāi)發(fā)&Android軟件開(kāi)發(fā)【教程三十二篇】
下一篇:關(guān)于視圖ListView和GridView之間的相互切換

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書(shū) | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-10-22 13:28 , Processed in 0.060493 second(s), 18 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表