1. 程式人生 > >Android Button 中絢麗漸變效果的設定 如此簡單。。。

Android Button 中絢麗漸變效果的設定 如此簡單。。。

Android中漸變效果的設定

在Drawable資料夾下建立xml檔案:

   <?xml version="1.0" encoding="utf-8"?>
   <shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
      <gradient
          android:startColor="#00000000"
          android:centerColor="#FFFFFFFF"
          android:endColor="#00000000"
          android:angle="0" />
   </shape>
   
    shape 節點配置的是圖形的形式,主要包括方形、圓形等,上邊程式碼為方形,
    gradient 節點主要配置起點顏色、終點顏色及中間點的顏色、座標、漸變效果(angle) (0,90,180從左到右漸變,270從上到下漸變)預設從左到右
    padding 節點主要配置上下左右的間距
    corners 節點配置四周園腳的半徑

最後需要使用處的xml檔案中呼叫即可:android:backgroud="drawable/你的檔案的名字"

可以用作listview的item的北京設定,注意要setCacheColorHint(0).

Android中常常使用shape來定義控制元件的一些顯示屬性,今天看了一些shape的使用,對shape有了大體的瞭解,稍作總結:

先看下面的程式碼:

複製到剪貼簿  XML/HTML程式碼
  1. <shape>
  2.     <!-- 實心 -->
  3.     <solidandroid:color="#ff9d77"/>
  4.     <!-- 漸變 -->
  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.     <padding
  17.         android:left="10dp"
  18.         android:top="10dp"
  19.         android:right="10dp"
  20.         android:bottom
    ="10dp"/>
  21. </shape>


solid:實心,就是填充的意思
android:color 指定填充的顏色

gradient:漸變
android:startColor和android:endColor分別為起始和結束顏色,ndroid:angle是漸變角度,必須為45的整數倍。
另外漸變預設的模式為android:type="linear",即線性漸變,可以指定漸變為徑向漸變,android:type="radial",徑向漸變需要指定半徑 android:gradientRadius="50"。

stroke:描邊
android:width="2dp" 描邊的寬度,android:color 描邊的顏色。
我們還可以把描邊弄成虛線的形式,設定方式為:
android:dashWidth="5dp"

android:dashGap="3dp"
其中android:dashWidth表示'-'這樣一個橫線的寬度,android:dashGap表示之間隔開的距離。

corners:圓角
android:radius為角的弧度,值越大角越圓。
我們還可以把四個角設定成不同的角度,方法為:

複製到剪貼簿  XML/HTML程式碼
  1. <corners
  2.         android:topRightRadius="20dp"    右上角 
  3.         android:bottomLeftRadius="20dp"    右下角 
  4.         android:topLeftRadius="1dp"    左上角 
  5.         android:bottomRightRadius="0dp"    左下角 
  6. />


這裡有個地方需要注意,bottomLeftRadius是右下角,而不是左下角,這個有點鬱悶,不過不影響使用,記得別搞錯了就行。
還有網上看到有人說設定成0dp無效,不過我在測試中發現是可以的,我用的是2.2,可能修復了這個問題吧,如果無效的話那就只能設成1dp了。

padding:間隔
這個就不用多說了,XML佈局檔案中經常用到。


大體的就是這樣,以下是一個使用的具體示例:用在Selector中作為Button的背景,分別定義了按鈕的一般狀態、獲得焦點狀態和按下時的狀態,具體程式碼如下: 複製到剪貼簿  XML/HTML程式碼
  1. main.xml: 
  2. <Button
  3.     android:layout_width="wrap_content"
  4.     android:layout_height="wrap_content"
  5.     android:text="TestShapeButton"
  6.     android:background="@drawable/button_selector"
  7.     />
  8. >



button_selector.xml: 複製到剪貼簿  XML/HTML程式碼
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selector
  3.     xmlns:android="http://schemas.android.com/apk/res/android">
  4.     <itemandroid:state_pressed="true">
  5.         <shape>
  6.             <!-- 漸變 -->
  7.             <gradient
  8.                 android:startColor="#ff8c00"
  9.                 android:endColor="#FFFFFF"
  10.                 android:type="radial"
  11.                 android:gradientRadius="50"/>
  12.             <!-- 描邊 -->
  13.             <stroke
  14.                 android:width="2dp"
  15.                 android:color="#dcdcdc"
  16.                 android:dashWidth="5dp"
  17.                 android:dashGap="3dp"/>
  18.             <!-- 圓角 -->
  19.             <corners
  20.                 android:radius="2dp"/>
  21.             <padding
  22.                 android:left="10dp"
  23.                 android:top="10dp"
  24.                 android:right="10dp"
  25.                 android:bottom="10dp"/>
  26.         </shape>
  27.     </item>
  28.     <itemandroid:state_focused="true">
  29.         <shape>
  30.             <gradient
  31.                 android:startColor="#ffc2b7"
  32.                 android:endColor="#ffc2b7"
  33.                 android:angle="270"/>
  34.             <stroke
  35.                 android:width="2dp"
  36.                 android:color="#dcdcdc"/>
  37.             <corners
  38.                 android:radius="2dp"/>
  39.             <padding
  40.                 android:left="10dp"
  41.                 android:top="10dp"
  42.                 android:right="10dp"
  43.                 android:bottom="10dp"/>
  44.         </shape>
  45.     </item>
  46.     <item>
  47.         <shape>
  48.             <solidandroid:color="#ff9d77"/>
  49.             <stroke
  50.                 android:width="2dp"
  51.                 android:color="#fad3cf"/>
  52.             <corners
  53.                 android:topRightRadius="5dp"
  54.                 android:bottomLeftRadius="5dp"
  55.                 android:topLeftRadius="0dp"
  56.                 android:bottomRightRadius="0dp"
  57.             />
  58.             <padding
  59.                 android:left="10dp"
  60.                 android:top="10dp"
  61.                 android:right="10dp"
  62.                 android:bottom="10dp"/>
  63.         </shape>
  64.     </item>
  65. </selector>


執行效果如下圖:
一般狀態:


獲得焦點狀態:


按下狀態:

相關推薦

Android Button 絢麗漸變效果設定 如此簡單

Android中漸變效果的設定 在Drawable資料夾下建立xml檔案:    <?xml version="1.0" encoding="utf-8"?>    <shape xmlns:android="http://schemas.android.com/apk/res/andr

Android------Button 添加聲音效果(兩種方式)

div abs 一次 播放 pool 當前 傳送門 ide col 我在先前的案例《Android 的底部導航欄 BottomNavigationBar》中添加以底部 的4個按鈕切換添加聲音 下來看看案例效果圖 使用添加依賴 comp

Android Studio 的個人習慣設定

1、方法引數名提示的取消方法 預設情況下 Android Studio 中字串前面有個 hint,看著不習慣 2、設定預設展開方法 3、預設檔案編碼 建議使用 utf-8,中國的 Windows電腦,預設的字元編碼為 GBK。Settings

Android StudioLogCat Filter的設定

在Activity的存活中,我們想要看到Activity的生命週期,於是在Activity中覆蓋了onCreate( )、onStart( )、onRestart( )、onResume( )、onP

CSS漸變效果

2.漸變的屬性和取值 1、屬性                background-image                取值:                1、linear-gradient()                     線性漸變                2、radial-gr

關於android系統導航欄以及設定全屏的介紹

在實際應用開發中,我們經常需要獲取全螢幕或者隱藏導航欄的需求,其實就只需要設定幾個引數就搞定。public static final int SYSTEM_UI_FLAG = View.SYSTEM_UI_FLAG_LAYOUT_STABLE        | View.SY

android開發如何通過程式碼設定控制元件的寬度和高度

原理:通過控制元件的setLayoutParams(params)來設定。而params的型別主要是根據該控制元件的父控制元件的型別來定義的。例如,1、main.xml檔案內容如下:<LinearLayout xmlns:android="http://schemas.

android --activity 的控制元件設定偵聽(onclickListener)無效,自定義adapter不執行getView 方法

今天敲程式碼時,遇到這樣的一個錯誤:寫了一個activity,結果給某些佈局設定偵時,沒有效果 activity 程式碼 比如說一個Button,back設定點選偵聽無用,但如果用寫onclick方

解決android Button 自帶陰影效果另一種辦法

在Android 5.0以後的版本中,定義一個button時,系統自動會加一個陰影的效果,有的時候這種效果看起來比較好,有的時候不符合UI的設計要求,這時候就需要手動去掉陰影。 方法一: 網上很多文章寫了解決辦法,就是給button加一句話style="?androi

使用html寫一個android關於介面,事情原來可以如此簡單

當軟體開發進入尾聲,我們都會給軟體配上個關於幫助介面 ,關於介面一般都會包含軟體名稱、軟體版本、官方群號、官方公眾號、感謝等等的一系列內容,這些內容往往都是一個陳列展示的內容,我們不得不使用一大堆TextView排版,不能靈活控制這些內容,有沒有更好的方法呢,我個人覺得使用

Android--自定義Button的樣式以及動態漸變效果

       之前開發使用過自定義樣式的Button,使用挺簡單的,但也很常用,因此總結一下。       1,使用drawable檔案自定義靜態的Button樣式 首先,自定義一個drawable檔

Android為網路圖片設定高斯模糊效果

寫一個方法,用來對Bitmap進行高斯模糊: public static Bitmap blurBitmap(Bitmap bitmap ,Context context){ //Let

Android使用NavigationView實現抽屜側滑效果Menu選單欄設定

a、在value/styles.xml中定義樣式<!--設定Menu中item的字型大小-->     <style name="WindowTitle" parent="@android:style/TextAppearance">         <item name="a

Android studio設定按鈕點選變色效果的方法

一、在drawable下新建一個xml 名字"test" 程式碼如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.androi

Androidbutton顏色漸變效果

先看看效果: 接著,看程式碼。 在drawable檔案下新建一個shape: <shape xmlns:android="http://schemas.android.com/a

Android實現陰影效果

sta 技術 wid 語言 mat floating 大表 ado sch 在Android L推出後,Google提出了全新的設計語言:材質設計。其中很重要的一點就是陰影效果的使用,你可以為每一個View設置一個elevation值,相當於除了x、y之外的z值,z值決定

android實現毛筆效果(View 畫圖)

方法 繪畫 object android中 validate 滑動 一個 lineto 效果 近期有一個項目設計一個APP實現通過觸摸屏實現毛筆寫字效果。傳統的繪畫板程序直接通過Path的moveTo和LineTo便可實現簡單的線條繪畫程序。然而要達到毛筆的筆鋒效果

ScrollView包含EditText,設定android:windowSoftInputMode="adjustPan"後無效

最近在做專案的時候遇到了如下問題: ScrollView中包含EditText,點選EditText輸入內容的時候被鍵盤遮擋,而且ScrollView無法繼續向上滑動到輸入框位置。 解決辦法: 在ScrollView的根節點處新增屬性 android:fitsSystemWind

Android ImageViewscaleType="centerCrop"實現左對齊效果

在開發過程中,用於顯示圖片大家用的比較多的應該是ImageView,在顯示圖片時是通常我們會設定scaleType以達到不同的展示效果。然後通常scaleType能設定的屬性僅為: CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則擷

Android具有動畫效果的圖片資源

在一些場景下,圖片需要具有動畫效果。當你想顯示一個由多張圖片組成的loading動畫,或者一個圖示切換過程,就需要到具有動畫效果的圖片了。Android提供了幾種方式實現動畫圖片。 下面的是個示例: 第一種方式是使用Animation Drawable,這是通過建立多張靜態