咨詢熱線:023-63853373

24小時熱線:13372636650

新聞中心

首頁

產品方案

服務項目

開發案例
新聞資訊
聯系我們

【Android】Android中shape的使用

2020/02/13  來源:樂潮信息

Android應用中使用shape的步驟是這樣子的,(1)在res/drawable下定義一個xml文件用于定義shape;(2)在代碼中或者在xml文件中引用這個文件就可以看到效果了。下面開始介紹具體的每一步是如何實現的:

1、  在res/drawable文件夾下創建一個名為gradient_box的xml文件:

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

<!--

       shape drawable xml文件中定義的一個幾何圖形,定義在res/drawable/目錄下,文件名filename稱為訪問的資源ID

       在代碼中通過R.drawable.filename進行訪問,在xml文件中通過@[package:]drawable/filename進行訪問。

 -->

 <!--

      android:shape=["rectangle" | "oval" | "line" | "ring"]

      shape的形狀,默認為矩形,可以設置為矩形(rectangle)、橢圓形(oval)、線性形狀(line)、環形(ring)

     下面的屬性只有在android:shape="ring時可用:

     android:innerRadius         尺寸,內環的半徑。

     android:innerRadiusRatio 浮點型,以環的寬度比率來表示內環的半徑,

     例如,如果android:innerRadiusRatio,表示內環半徑等于環的寬度除以5,這個值是可以被覆蓋的,默認為9.

     android:thickness                     尺寸,環的厚度

     android:thicknessRatio            浮點型,以環的寬度比率來表示環的厚度,例如,如果android:thicknessRatio="2",

     那么環的厚度就等于環的寬度除以2。這個值是可以被android:thickness覆蓋的,默認值是3.

     android:useLevel               boolean值,如果當做是LevelListDrawable使用時值為true,否則為false.

  -->

<shape

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

    android:shape="rectangle">

    <!--

          圓角

          android:radius                 整型 半徑

           android:topLeftRadius            整型 左上角半徑

           android:topRightRadius  整型 右上角半徑

           android:bottomLeftRadius      整型 左下角半徑

           android:bottomRightRadius    整型 右下角半徑

     -->

     <corners 

        android:radius="8dp"

        android:topLeftRadius="5dp"

        android:topRightRadius="15dp"

        android:bottomLeftRadius="20dp"

        android:bottomRightRadius="25dp" 

        />

     <!--

          漸變色

          android:startColor  顏色值起始顏色

        android:endColor    顏色值結束顏色

        android:centerColor 整型漸變中間顏色,即開始顏色與結束顏色之間的顏色

        android:angle       整型漸變角度(PS:當angle=0時,漸變色是從左向右。 然后逆時針方向轉,當angle=90時為從下往上。angle必須為45的整數倍)

        android:type        ["linear" | "radial" | "sweep"] 漸變類型(取值:linear、radial、sweep)

                            linear 線性漸變,這是默認設置

                            radial 放射性漸變,以開始色為中心。

                            sweep 掃描線式的漸變。

       android:useLevel      ["true" | "false"]                             如果要使用LevelListDrawable對象,就要設置為true。設置為true無漸變。false有漸變色

       android:gradientRadius 整型  漸變色半徑.當 android:type="radial" 時才使用。單獨使用 android:type="radial"會報錯。

       android:centerX       整型  漸變中心X點坐標的相對位置

       android:centerY        整型  漸變中心Y點坐標的相對位置

    -->

    <gradient

        android:startColor="#FFFF0000"

        android:endColor="#80FF00FF"

        android:angle="45"

        />

    <!--

          內邊距,即內容與邊的距離

          android:left        整型 左內邊距

           android:top      整型 上內邊距

           android:right     整型 右內邊距

           android:bottom 整型 下內邊距

      -->

     <padding

         android:left="10dp"

         android:top="10dp"

         android:right="10dp"

         android:bottom="10dp"

         />

    <!--

           size 大小

           android:width     整型 寬度

           android:height    整型 高度

    -->

    <size

        android:width="600dp"

        />

    <!--

           內部填充

           android:color      顏色值 填充顏色

    -->

    <solid

        android:color="#ffff9d77"

        />

     <!--

          描邊

          android:width            整型      描邊的寬度

           android:color             顏色值 描邊的顏色

           android:dashWidth    整型      表示描邊的樣式是虛線的寬度, 值為0時,表示為實線。值大于0則為虛線。

           android:dashGap      整型      表示描邊為虛線時,虛線之間的間隔 即“ - - - - ”

     -->

     <stroke

        android:width="2dp"

        android:color="#dcdcdc" 

        />

</shape>

2、  在窗口布局文件中將1中創建的文件作為TextView的背景:

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

<LinearLayout

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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="ShapeTest"

        android:background="@drawable/gradient_box"

        android:textSize="24.0dp"

        android:textColor="@android:color/black"

        />

</LinearLayout>

    或者在代碼中動態設置:

修改一下布局文件:

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

<LinearLayout

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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

    <TextView

        android:id="@+id/shapeTxtId"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="ShapeTest"

        android:textSize="24.0dp"

        android:textColor="@android:color/black"

        />

</LinearLayout>

代碼中動態設置TextView的背景:

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        Resources res = getResources( );

        Drawable shape = res. getDrawable( R.drawable.gradient_box );

 

        TextView tv = (TextView)findViewById( R.id.shapeTxtId );

        tv.setBackgroundDrawable(shape);

    }

測試代碼的具體效果是這樣子的:


*以上圖片均來源于網絡,如有侵權,請聯系刪除*

重慶APP開發多少錢

根據app應用軟件開發的難易程度可以將重慶app開發價格大致分為一下幾類

開發三級分銷系統APP的好處

重慶APP開發樂潮科技認為:三級分銷系統是各路商家的最愛,這句話說的絕對沒毛病。

手機app定制開發要根據用戶市場來

重慶app開發公司樂潮科技認為,隨著移動互聯網技術的不斷發展,手機app開發現在已經

點擊我更換圖片

公司地址:

重慶市渝北區冉家壩時光城寫字樓

聯系方式:

023-63853373

13372636650(24h熱線)

重慶市渝北區冉家壩時光城寫字樓

? 2020 樂潮信息

渝ICP備15006414號-2??????渝公網安備 50011202502110號???