(Android UI)shape、selector以及layer-list
hape和selector是Android UI設計中經常用到的,比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到shape和selector。可以這樣說,shape和selector在美化控制元件中的作用是至關重要的。
1.Shape
作用:XML中定義的幾何形狀
位置:res/drawable/檔案的名稱.xml
使用的方法:
Java程式碼中:R.drawable.檔案的名稱
XML中:Android:background="@drawable/檔案的名稱"
屬性:
2.Selector<shape> Android:shape=["rectangle" | "oval" | "line" | "ring"]
其中rectagle矩形,oval橢圓,line水平直線,ring環形
<shape>中子節點的常用屬性:
<gradient> 漸變
Android:startColor 起始顏色
Android:endColor 結束顏色
Android:angle 漸變角度,0從上到下,90表示從左到右,數值為45的整數倍預設為0;
Android:type 漸變的樣式 liner線性漸變 radial環形漸變 sweep
<solid > 填充
Android:color 填充的顏色
<stroke > 描邊
Android:width 描邊的寬度
Android:color 描邊的顏色
Android:dashWidth 表示'-'橫線的寬度
Android:dashGap 表示'-'橫線之間的距離
<corners > 圓角
Android:radius 圓角的半徑 值越大角越圓
Android:topRightRadius 右上圓角半徑
Android:bottomLeftRadius 右下圓角角半徑
Android:topLeftRadius 左上圓角半徑
Android:bottomRightRadius 左下圓角半徑
<padding >填充
android:bottom="1.0dip" 底部填充
android:left="1.0dip" 左邊填充
android:right="1.0dip" 右邊填充
android:top="0.0dip" 上面填充
簡介
使用的方法:根據不同的選定狀態來定義不同的現實效果
分為四大屬性:
android:state_selected是選中
android:state_focused是獲得焦點
android:state_pressed是點選
android:state_enabled是設定是否響應事件,指所有事件
android:state_window_focused預設時的背景圖片
引用位置:res/drawable/檔案的名稱.xml
Java程式碼中:R.drawable.檔案的名稱
XML中:Android:background="@drawable/檔案的名稱"
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:Android="http://schemas.android.com/apk/res/android">
<!-- 預設時的背景圖片-->
<item Android:drawable="@drawable/pic1" />
<!-- 沒有焦點時的背景圖片 -->
<item
Android:state_window_focused="false"
android:drawable="@drawable/pic_blue"
/>
<!-- 非觸控模式下獲得焦點並單擊時的背景圖片 -->
<item
Android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/pic_red"
/>
<!-- 觸控模式下單擊時的背景圖片-->
<item
Android:state_focused="false"
Android:state_pressed="true"
Android:drawable="@drawable/pic_pink"
/>
<!--選中時的圖片背景-->
<item
Android:state_selected="true"
android:drawable="@drawable/pic_orange"
/>
<!--獲得焦點時的圖片背景-->
<item
Android:state_focused="true"
Android:drawable="@drawable/pic_green"
/>
</selector>
3.layer-list
簡介:將多個圖片或上面兩種效果按照順序層疊起來
例子:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<!--圖片1-->
<item android:id="@+id/user_faceback_drawable"
android:drawable="@drawable/faceback" />
<!--圖片2-->
<item android:id="@+id/user_face_drawable"
android:drawable="@drawable/h001"
android:left="10.0dip"
android:top="18.0dip"
android:right="25.0dip"
android:bottom="35.0dip" />
</layer-list>
<!--2個圖片的疊加-->
效果圖:
+=
以上三個標籤可以揉合到一塊兒來使用,所要實現的效果就是上面三種簡介的說明,比如下面這個例子:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><layer-list>
<item android:bottom="8.0dip"><shape>
<solid android:color="#ffaaaaaa" />
</shape></item>
<item><shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="#ffaaaaaa" />
<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape></item>
<item><shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="@color/setting_item_bgcolor_press" />
</shape></item>
</layer-list></item>
<item><layer-list>
<item android:bottom="8.0dip"><shape>
<solid android:color="#ffaaaaaa" />
</shape></item>
<item><shape>
<corners android:bottomLeftRadius="4.0dip" android:bottomRightRadius="4.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="#ffaaaaaa" />
<padding android:bottom="1.0dip" android:left="1.0dip" android:right="1.0dip" android:top="0.0dip" />
</shape></item>
<item><shape>
<corners android:bottomLeftRadius="3.0dip" android:bottomRightRadius="3.0dip" android:topLeftRadius="1.0dip" android:topRightRadius="1.0dip" />
<solid android:color="@color/setting_item_bgcolor" />
</shape></item>
</layer-list></item>
</selector>
相關推薦
(Android UI)shape、selector以及layer-list
hape和selector是Android UI設計中經常用到的,比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到shape和selector。可以這樣說,shape和selector在美化控制元件中的作用是至關重要的。 1.Shape
Android開發:shape和selector和layer-list的(詳細說明)
<shape>和<selector>在Android UI設計中經常用到。比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到<shape>和<selector>。可以這樣說,<shap
ElasticSearch最佳入門實踐(六十)建立、修改以及刪除索引
1、建立索引 建立索引的語法 PUT /my_index { "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ...
shape和selector和layer-list的(詳細說明)
原文地址:http://blog.csdn.net/brokge/article/details/9713041 shape和selector是Android UI設計中經常用到的,比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到shap
Android Style --圓角、填充、複用(shape、selector)
一門技術的基礎知識是掌握一門技術的起點和支撐。許多基礎知識需要我們不斷的回顧。 我們經常需要對TextView、Button的控制元件的樣式做一些修改,比如圓角、填充色、邊框色等 在對控制元件的形狀以
JAVA 畫圖板實現(基本畫圖功能+界面UI)一、界面實現
tor 做了 功能 分享圖片 重復 ble erase 選擇 width /*文章中用到的代碼只是一部分,需要源碼的可通過郵箱聯系我 [email protected]*/ 這段時間在學JAVA的swing界面開發,試著做了個畫圖板。實現了直線、曲線、噴槍、矩形、圓形、文字
JAVA 畫圖板實現(基本畫圖功能+界面UI)二、功能實現及重繪實現
cos 博客 tint ext min click 代碼 hints 按鈕 上篇博客中介紹了界面的實現方法,在這篇博客中將對每個按鈕的功能的實現進行講解並介紹重繪 首先肯定要添加事件監聽機制了,那麽問題來了,事件源對象是誰?需要添加什麽方法?事件接口是什麽? 1、我們需要點
【完全分散式Hadoop】(二)HDFS、YARN以及HA高可用概念介紹
一、HDFS-Hadoop分散式檔案系統 HDFS 採用Master/Slave的架構來儲存資料,這種架構主要由四個部分組成,分別為HDFS Client、NameNode、DataNode和Secondary NameNode。下面我們分別介紹這四個組成部分 1、Client:就
重溫CLR(二)生成、部署以及程式集
將型別生成到模組中 class Program { static void Main(string[] args) { Console.WriteLine("Hi"); } } &
資料結構與演算法(Java描述)-15、稀疏矩陣以及稀疏矩陣的三元組實現
一、稀疏矩陣 對一個m×n的矩陣,設s為矩陣元素個數的總和,有s=m*n,設t為矩陣中非零元素個數的總和,滿足t<<s的矩陣稱作稀疏矩陣。符號“<<”讀作小於小於。簡單說,稀疏矩陣就是非零元素個數遠遠小於元素個數的矩陣。相對於稀疏矩陣來說,一個不稀疏的矩陣也稱作稠密矩陣。
Android學習之旅(第一篇) SurfaceView的原理以及使用場景
為什麼要使用SurfaceView來實現動畫? 因為View的繪圖存在以下缺陷: View缺乏雙緩衝機制 當程式需要更新View上的影象時,程式必須重繪View上顯示的整張圖片 新執行緒無法直接更新View元件 SurfaceView的繪圖機制
c#基礎(三)Public、Private以及Protected的區別
被public修飾的成員可以被類的內部或者是外部直接訪問,而private成員只能被類的內部訪問,如果類內部的成員不希望被外界訪問,那麼可以將其宣告為private,這樣的話就可以對不希望被訪問的成員進行保護。正常情況下,在某一個類中,欄位(field)或者是成員變數
Android Studio在drawable資料夾建立xml的shape、selector等檔案
平時我們建立xml的shape型別檔案:選擇drawable——右擊選擇New——Drawable resource file; 隨後彈出了New Resource File頁面,但是卻沒有我們想要
Redis系列(一)--安裝、helloworld以及讀懂配置檔案
再開個redis系列,本系列打算不詳細講一系列的命名的了(會推薦別人寫的,人家寫的夠詳細了),我直接就是做redis方案提供,當然一開始還是講下helloworld和配置檔案好了。會逐步更新,歡迎關注。 文章結構:(1)安裝;(2)helloworld;(
Android模擬器(Android Emulator )使用的快捷鍵、引數、注意事項
Android Emulator是一款功能非常齊全的模擬器,電話本、通話等功能都可進行模擬。甚至其內建的瀏覽器和Google Maps都可以聯網。使用者可以使用鍵盤輸入,單擊模擬器按鍵輸入,甚至還可以使用滑鼠單擊、拖動螢幕進行操作。 1.模擬器和真機的不同之處 * 不支援呼叫和接聽實際來電,但可以通過
判斷 Android rom是不是 EMUI(Emotion UI)
1、定義一個可以獲取系統屬性的方法 public static String getProperty(String key, String defaultValue) { String value = defaultValue;
函數式語言(functional language)定義、函數式語言的種類以及為什麽函數式語言會流行起來的學習筆記
快捷 方式 語言 升級 clean 死鎖 並發執行 nbsp lis 一、什麽是函數式語言? 函數式語言一類程序設計語言,是一種非馮·諾伊曼式的程序設計語言。函數式語言主要成分是原始函數、定義函數和函數型。這種語言具有較強的組織數據結構的能力,可以
淺談獨立特徵(independent features)、潛在特徵(underlying features)提取、以及它們在網路安全中的應用
1. 關於特徵提取 0x1:什麼是特徵提取 特徵提取研究的主要問題是,如何在資料集未明確表示結果的前提下,從中提取出重要的潛在特徵來。和無監督聚類一樣,特徵提取演算法的目的不是為了預測,而是要嘗試對資料進行特徵識別,以此得到隱藏在資料背後的深層次意義。 回想一下聚類演算法的基本概念,聚類演算法將資料集中
教你高速高效接入SDK——Unity統一接入渠道SDK(Android篇)
方法名 nco 簡單 sdk ui主線程 unit onpause 提示 schema U8SDK的設計之初,就是為了可以支持各種遊戲引擎開發的遊戲,而不不過Android的原生平臺。眼下一大半的手遊,都是採用Unity3D和Cocos2dx開發,那麽這裏,我們就先來一
Gradle Build速度加快終極方法(android studio)
all ref bsp .net rms perm lan ase fcm Android Studio用起來越來越順手,但是卻發現Build的速度實在不敢恭維,在google和度娘了幾把(....)之後,大體就是分配更高的內存,步驟:Setting-->搜索grad