TShopping

 找回密碼
 註冊
搜索
查看: 2316|回復: 0
打印 上一主題 下一主題

[教學] Android button 顏色 textview 字型顏色大小

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-12-14 05:51:27 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
1.Button顏色

Button 類別的 android:background 屬性可用來設定按鈕的顏色,而且設定的方式有很多種,最簡單的就是直接指定按鈕顏色,例如:

  1. android:background="#0000FF"
複製代碼

就是指定按鈕為藍色

也可以指定一個圖檔(Android 主推 PNG 格式),例如:

  1. android:background="@drawable/圖檔名"
複製代碼


進階指定一外部 resource 檔,做一些細項的微調,這會用到 Shape Drawable,其屬性如下:

shape,其值有 rectangle(四邊形),oval(橢圓形),line(直線),ring(環形);

當 shape="ring" 時,又有 useLevel、innerRadius、innerRadiusRatio、thickness、thicknessRatio 5 個屬性,通常 useLevel 設為 false,若設為 true,則需要 LevelListDrawable 這個 resource 檔配合。
innerRadius 和 innerRadiusRatio 擇一使用,innerRadius 是直接指定內圓的半徑,所以需附上單位,如 50dp;而 innerRadiusRatio 則為比例,比方說 innerRadiusRatio=2 時,則內圓的半徑就是寬度除以 2,預設值為 9。
thickness 和 thicknessRatio 擇一使用,thickness 是直接指定外環的厚度,所以需附單位,如 5dp;而 thicknessRatio 則為比例,比方說 thicknessRatio=2 時,則環的厚度寬度除以 2,預設值為 3。

corners - 指四個角,有 radius、topLeftRadius、topRightRadius、bottomLeftRadius、bottomRightRadius 子屬性。
radius 是當 shape=rectangle 時,設定四個角為圓角的度數,如:2dp,數字愈大,角度愈圓;您也可以透過 topLeftRadius(左上)、topRightRadius(右上)、bottomLeftRadius(左下)、bottomRightRadius(右下) 指定四個角各自的角度。

gradient 為漸層色,有三種 type:linear、radial(放射狀)、sweep,可惜老灰鴨英文不夠好,搞不懂也踹不出 sweep 會有什麼外觀效果。
startColor 為起始顏色,endColor 為終止顏色,angle 為角度,當 angle=0 時,表起始顏色在左,終止顏色在右,當 angle=90,起始顏色在下,終止顏色在上,當 angle=180,起始顏色在右,終止顏色在左,當 angle=270,起始顏色在上,終止顏色在下,而 angle 必須為 45 的倍數。
當 gradient:type="radial" 時,一定還要指定 gradientRadius 的值,如:200,不然程式會出錯。
當 gradient:type="line" 時,還可加上 centerColor 屬性,可使漸層表現更豐富,例如:
  1. android:startColor="#449def"
  2. android:centerColor="#2f6699"
  3. android:endColor="#449def"
  4. android:angle="270"
複製代碼

則會表現出 由上至中顏色漸深,再由中至下顏色漸淺

stroke 為框線厚度,如:1dp。

padding 為內部文字距上、下、左、右的空白。

接下來思考您的 app 中用到的 Button 有哪幾種狀態:state_pressed、state_focused、state_hovered、state_selected、state_enabled、state_activated、state_window_focused、state_checkable、state_checked;通常按鈕若不 disable,則就有 一般 及 按下 二種狀態。

再來就是建立一個 resource 檔,resource 檔要放在 /res/drawable 資料夾內,如下:
我們將檔案命名為 /res/drawable/button_blue.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <item>
  4.         <shape>
  5.             <gradient
  6.                 android:startColor="#449def"
  7.                 android:centerColor="#2f66bb"
  8.                 android:endColor="#449def"
  9.                 android:angle="270" />
  10.             <stroke
  11.                 android:width="1dp"
  12.                 android:color="#2f66bb" />
  13.             <corners
  14.                 android:radius="3dp" />
  15.             <padding
  16.                 android:left="10dp"
  17.                 android:top="10dp"
  18.                 android:right="10dp"
  19.                 android:bottom="10dp" />
  20.         </shape>
  21.     </item>
  22.     <item android:state_pressed="true" >
  23.         <shape>
  24.             <solid
  25.                 android:color="#449def" />
  26.             <stroke
  27.                 android:width="1dp"
  28.                 android:color="#2f66bb" />
  29.             <corners
  30.                 android:radius="3dp" />
  31.             <padding
  32.                 android:left="10dp"
  33.                 android:top="10dp"
  34.                 android:right="10dp"
  35.                 android:bottom="10dp" />
  36.         </shape>
  37.     </item>
  38. </selector>
複製代碼


然後在 layout 中指定按鈕要採用的 resource
  1. <Button
  2.         ...
  3.         android:background="@drawable/button_blue"
  4.         ...
  5.         android:textColor="@android:color/white" />
複製代碼


結果顯示如下圖:




2.設定textview的顏色

2.1.將android:textColor="@android:color/white"插入

<TextView android:text="@+id/TextView01"

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

 android:id="@+id/TextView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

</TextView>

2.2第二種方法

2.2.1.在res/values目錄下建立Color.xml和drawable.xml


2.2.2.分別這2個xml輸入以下內容

color.xml

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

  2.     <resources>  

  3.     <color name="red">#FF0000</color>  

  4. </resources>  
複製代碼




drawable.xml

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

  1. <resources>  

  2.     <drawable name="white">#FFFFFF</drawable>  

  3.     <drawable name="dark">#000000</drawable>  

  4.     <drawable name="red">#FF0000</drawable>  

  5. </resources>
複製代碼




2.2.3.在main.xml的TextView標籤中插入android:textColor="@color/red"

@color是獲取資源文件中(所月res目錄下的xml文件)的<color>標籤

  red指在標籤下找其name值為red的內容,其值為#FF0000

  也可將@android:textColor="@color/red"修改為android:textColor="@drawable/red"

  其意思相同

2.3第三種方法

2.3.1.修改主程式Activity的onCreate方法,將文字框TextView取名為tv

    tv = (TextView)this.findViewById(R.id.tv01);  



2.3.2.設定TextView的setTextColor來進字文字顏色的設定,有3種語法可以設定:

 第一種: tv.setTextColor(android.graphics.Color.RED);//系統本身的顏色

 第二種:tv.setTextColor(0xffff00ff)

 第三種:tv.setTextColor(this.getResources().getColor(R.color.red));//獲得資源文件進行設定。如:

   
  1. <color name="red">#FF0000</color>

  2.    <drawable name="red">#FF0000</drawable>

  3.    <string name="red">#FF0000</string>
複製代碼


3.字型粗體、大小
  1. <TextView
  2.                 android:id="@+id/textView1"
  3.                 android:layout_width="wrap_content"
  4.                 android:layout_height="wrap_content"
  5.                 android:textSize="20dp"
  6.                 android:textStyle="bold"
  7.                 android:textColor="@android:color/holo_blue_dark" />
複製代碼


android:textSize="20dp" 20dp 大小
android:textStyle="bold"  粗體


參考文章

http://oldgrayduck.blogspot.tw/2012/10/android.html

http://fecbob.pixnet.net/blog/post/34682451-%E8%A8%AD%E5%AE%9Atextview%E7%9A%84%E9%A1%8F%E8%89%B2-


 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-20 09:07 , Processed in 0.074661 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表