1. 程式人生 > >使用selector,shape以及lay-list製作圓形陰影點選效果

使用selector,shape以及lay-list製作圓形陰影點選效果

之前反編譯了百度閱讀的xml檔案,在res資料夾中找不到其中按鈕的背景圖片,後來發現他們的一些按鈕背景是通過layer-list製作出來的

下面我們就來介紹一下這種製作方法

1、我們都知道要製作點選效果的按鈕,那麼就得使用selector,他能夠在各種按鈕狀態下去定義背景圖片。現在我們只需要點選效果,那麼

就在state_pressed狀態下設定背景就行了

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_pressed="true"
        android:drawable="@drawable/layer_grey_ball_pressed" />
    
    <item android:drawable="@drawable/layer_grey_ball_normal" />
</selector>

2、我們知道一般上面的drawabe我們放的都是圖片,現在則是通過layer-list製作出來的,layer-list的作用是將多個圖片或者控制元件進行疊加

上面的兩個狀態的背景圖都是通過layer-list製作出來的

<?xml version="1.0" encoding="utf-8"?>
<layer-list
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_grey_ball_shadow" />
    <item android:drawable="@drawable/shape_grey_ball" android:bottom="2.0dip" />
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_grey_ball_pressed_shadow" />
    <item android:drawable="@drawable/shape_grey_ball_pressed" android:top="2.0dip" />
</layer-list>

3、疊加那麼是疊加什麼東西呢?通過上面的xml檔案我們可以看出,是疊加了兩個shape檔案,從而製作出了立體陰影的效果,他的處理很簡單

就是通過使得張圖不完全重疊從而製作出了陰影的效果。

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ff5f5a54" />
    <size android:height="80.0dip" android:width="80.0dip" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ff706c63" />
    <size android:height="80.0dip" android:width="80.0dip" />
</shape>

上面的兩個shape檔案通過使用layer-list進行疊加就能夠製作出一個陰影效果的背景,點選之後的背景再通過另外兩個shape檔案進行製作,那麼shape

是什麼呢?shape是android中用於製作UI的工具,能夠製作方形,線,圓(包括橢圓),圓環這四種圖形,並且能夠定義比如:背景顏色,大小,漸變

點的使用方法。

通過以上三個步驟,按鈕的背景就製作好了。看下效果:


這樣一個下邊緣有陰影效果的按鈕便製作好了。

相關推薦

使用selector,shape以及lay-list製作圓形陰影效果

之前反編譯了百度閱讀的xml檔案,在res資料夾中找不到其中按鈕的背景圖片,後來發現他們的一些按鈕背景是通過layer-list製作出來的 下面我們就來介紹一下這種製作方法 1、我們都知道要製作點選效果的按鈕,那麼就得使用selector,他能夠在各種按鈕狀態下去定義背景圖

android 在selector中同時設定button的圓角和效果,簡單顏色無需美工

1,如果我們沒有美工來設計我們的圓角圖片,可以採用shape的方式實現: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.andr

android selector設定button效果(詳細)以及常見問題

button的點選效果學習起來事實上比較容易,此點對開發者來說也是使用的比較頻繁的一個知識點,與它相關的還有編輯框的獲取焦點時改變背景顏色、選擇button選擇時改變字型顏色等等。這些其實都是用到的drawable的seletor。 當然drawable中還有很多其他效果可

RecyclerView的--長按--以及item裡面控制元件的事件

主要是在介面卡裡面編寫在程式碼裡面呼叫: 核心程式碼: private OnItemClickListener onItemClickListener;//點選事件 private OnItemLongClickListener onItemLongClickListener

【IOS學習筆記】為UICollectionView設定自適應螢幕寬度以及效果

1、設定代理 @property (weak, nonatomic) IBOutlet UICollectionView *gridview; _gridview.dataSource=self; _gridview.delegate=self; 2、實現方法 筆者使用

用echarts.js製作中國地圖,對應的省市連結到指定頁面

這裡使用的是ECharts 2,因為用EChart 3製作的地圖上的省市文字標識會有重疊,推測是引入的地圖檔案china.js,繪製文字的座標方面的問題,所以,這裡還是使用老版本。 ECharts 2需要require載入模組。html中只需要用script引入echarts.js即可。 具體程式碼如下:

CSS+JS製作導航欄選中效果

案例一:日曆選中(li) 示例如圖: 預設選中第一個:週一,如圖: 點選週二,如圖: JS程式碼: <script type="text/javascript">

關於button按鈕設定background屬性後,效果失效的解決辦法。(當的時候顯示陰影

1.當button按鈕我們未設定background的屬性的時候,button按鈕預設點選的時候顯示灰色。 2.當我們為button按鈕設定background屬性之後,button點選的效果失效。(,如果是白背景,一直是白色) 3.解決方法:在res下新建資料夾color

不用selector實現button的簡單效果

一般我們給button或者imageview設定點選效果時,會使用一個xml的選擇器selector。但是整個應用下來會建立很多個xml,甚至很多圖片。 一般我們要得點選效果只是讓透明度有些變化而已,那麼針對透明度變化自定義一個元件。 public cl

Android 文字和按鈕Button效果的(selector使用)直接用

不廢話,寫最實用的部落格。 以下是按鈕的selector使用 <selector xmlns:android="http://schemas.android.com/apk/res/an

android效果selector

要做一個類似這樣的組合按鈕。點選的時候 改變背景顏色,改變圖示顏色,改變字型顏色。看起來很容易嘛。一個垂直的LinearLayout + Imageview + Textview+幾個點選的selector就搞定了。xml程式碼:<RelativeLayout xmln

Android在xml中設定元件風格(圓角,效果selector,邊框,進度條風格,動畫)TextView文字透明度

在標題中寫到的元件的特效,都是在xml中為元件定義的 步驟: 1.在drawable下建立“Drawable resource file”,命名為:btn_corners(表示功能:圓角button) 2.在btn_corners.xml檔案中寫入程式碼如下 3.TextV

(Android UI)shapeselector以及layer-list

hape和selector是Android UI設計中經常用到的,比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到shape和selector。可以這樣說,shape和selector在美化控制元件中的作用是至關重要的。 1.Shape

Android使用shape製作圓形控制元件及新增彈跳動畫

前言:我們在很多時候都需要在res/drawable資料夾下建立相應的xml檔案來為控制元件新增一些樣式效果,比如按鈕按下時的按鈕樣式變化、或者指定按鈕的一些邊框樣式、或者為常用的EditText、TextView、ImageView、ImageButton等等新增一些樣

css畫三角形以及實現帶三角的陰影效果

什麽 覆蓋 parent jpg 利用 ron 通過 技術 定位 先上圖看效果 1.三角形怎麽畫 通過控制四周邊框實現,想要紅色區域三角形的就設置其他三邊顏色設置為transparent,想要什麽什麽三角形就其他邊設置為透明顏色即可. 2.三角形畫好後,利用偽類,定位

詳解用CSS3製作圓形滾動進度條的動畫效果

今天手把手教大家用CSS3製作圓形滾動進度條動畫! 先看一下效果圖,會提升我們的學習興趣喲: 第一種效果: html結構: <div id="progress"> <span></span> </div>

Java將List轉成String[] 以及List轉成String

今天在做自然語言處理的使用用到了資料結構之間的轉換問題,現在將這一類問題的解決方法統一記錄,方便日後使用。 首先供上Java JDK8的API文件:https://docs.oracle.com/javase/8/docs/api/ 1.List轉String[] String []

pr怎樣製作遮罩,premiere怎樣製作圓形遮罩

第一步,先開啟premiere,然後把你要遮罩的視訊放到視訊一軌道。 接著新建出一個靜態的字幕,通過字幕來實現遮罩效果。 如圖,在字幕板裡面設定好形狀,左邊就是形狀工具,如圖所示,小編我就設定了一個圓形的形狀,之後即可關掉字幕板。 接著把字幕拉到視訊一軌道

簡易登入以及註冊介面製作

以下為登入和註冊頁面的圖片 登入: 註冊: 先介紹登入頁面 以下為登入的html <input id="username" type="text" placeholder="請輸入使用者名稱"> <input id="password" type="passw

apache服務的docker映象 以及用Dockerfile製作apache服務的映象

在上一篇文章中我們寫到了用centos映象去製作ssh服務的映象sshd-centos,在sshd-centos的基礎上面我們製作apache服務的docker映象,以及用Dockerfile的方法制作apache服務的映象第一種方法:直接製作我們可以看到我們製作的sshd-