1. 程式人生 > >Android Style --圓角、填充、複用(shape、selector)

Android Style --圓角、填充、複用(shape、selector)

一門技術的基礎知識是掌握一門技術的起點和支撐。許多基礎知識需要我們不斷的回顧。

我們經常需要對TextView、Button的控制元件的樣式做一些修改,比如圓角、填充色、邊框色等

在對控制元件的形狀以及狀態變化等處理的離不開<shape>和<selector>

關於<shape>和<selector>之間的區別這裡有一篇文章總結的很不錯 http://blog.csdn.net/brokge/article/details/9713041/

1、 圓角邊框實現

    在drawable中新建一個xml檔案

<?xml version="1.0" encoding="utf-8"?>
<shape  xmlns:android="http://schemas.android.com/apk/res/android">
    <!--角度-->
    <corners
        android:radius="5dp"
        />
    <!--填充色-->
    <solid
        android:color="#FF3030"
        />
    <stroke
        android:color="#000000"
        android:width="1dp"
        />
</shape>
在佈局檔案中引用這個資原始檔(作為Background)
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:textColor="#FFFFFF"
        android:background="@drawable/style_textview_normal"
        android:text="主題"/>
效果如圖:


為什麼這樣定義?

   這個實際是給TextView定義了一個背景,Android 控制元件(TextView、Button。。)的背景background可以接受許多種資源型別,color、drawable

2、樣式的複用

  在style.xml中定義一個樣式

<style name="style_text_array">
        <item name="android:textSize">21dp</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:background">@drawable/style_textview_normal</item>
    </style>

 在佈局檔案中引用

 <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/style_text_array"
        android:text="主題"/>

樣式複用相當於統一的定義了一個樣式組,可以在許多的控制元件裡引用,從而減少重複程式碼

相關推薦

Android Style --圓角填充shapeselector

一門技術的基礎知識是掌握一門技術的起點和支撐。許多基礎知識需要我們不斷的回顧。 我們經常需要對TextView、Button的控制元件的樣式做一些修改,比如圓角、填充色、邊框色等 在對控制元件的形狀以

js的動態載入快取更新以及

總體思路 1、  建立一個js服務,該服務實現通用js檔案的載入、依賴、快取、更新以及複用。 2、  各個專案如果使用通用js,可(bi)以(xu)使用js服務實現載入。 3、  Js服務只提供通用的js,比如jQuery、my97、easyUI等(可根據實際情況設定具體的js檔案)。 4、  其他針

js的動態載入快取更新以及

  本來想一氣呵成,把載入的過程都寫了,但是卡著呢,所以只好在分成兩份了。   1、頁面裡使用<script>來載入 boot.js 。   2、然後在boot.js裡面動態載入 bootLoad.js。以時間作為標識 var dateVer = date.getYear() + '_

js的動態載入快取更新以及

使用範圍:   OA、MIS、ERP等資訊管理類的專案,暫時不考慮網站。 遇到的問題:   完成一個專案,往往需要引用很多js檔案,比如jQuery.js、easyUI等。還有自己寫的一些列js檔案,那麼這些檔案如何方便的載入,如果檔案有變化如何才能讓客戶端及時更新快取?如果能夠提高點執行效率,

js的動態載入快取更新以及

  上一篇發出來後得到了很多回復,在此首先感謝大家的熱情捧場!有的推薦第三方框架,比如 In.js、requrieJS、sea.js、lab.js等。這個開闊了眼界,以前只知道sea.js,省去了自己搜尋的麻煩。也用了點時間簡單看了一下,因為每一個都是大塊頭,都有自己的理念,如果只是簡單使用的話,那麼誰便

SVG defssymboluse

<defs>與<symbol>的相同點 <defs>元素用於預定義一個元素使其能夠在SVG影象中重複使用。 <symbol>元素用於定義可重複使用的符號。 嵌入在<defs>或<symbol&

Part 2 程式碼繼承VS組合

談這個主題之前,我們先來聊聊程式碼複用,很多時候我們要複用一段程式碼時,發出的第一個吶喊就是“我要繼承!”。 但實際上把繼承的目的定為程式碼複用,本身就是一個錯誤的理解,那繼承到底是幹嘛的,往下看... JS中是使用原型來模擬繼承的,如: 而繼承的真正目的是向上轉型實

非阻塞socket與io多路沒整理好

非阻塞套接字 多人聊天客戶端 import socket server = socket.socket() server.setblocking(False) #設定非阻塞 server.bind("",6969) server.listen(5) clients = [ ] 存放連線進來的

I/OI/O multiplexing: select, pselect, poll, ppoll, epoll

I/O複用:select, pselect, poll, epoll. 注意:本文主要介紹的是epoll相關知識,無法確保正確 1. 相關問題: 1.1 什麼是I/O複用? 1.2 四個I/O複用方法相關知識點? 1.3 四個I/O複

一次讀懂 SelectPollEpoll IO技術

“ 閱讀本文大概需要 6 分鐘。” 我們之前採用的多程序方式實現的伺服器端,一次建立多個工作子程序來給客戶端提供服務。其實這種方式是存在問題的。 可以打個比方:如果我們先前建立的幾個程序承載不了目前快速發展的業務的話,是不是還得增加程序數?我們都知道系統建立程序是需

IO多路-- SelectPollEpoll

在上一篇博文中提到了五種IO模型,關於這五種IO模型可以參考博文IO模型淺析-阻塞、非阻塞、IO複用、訊號驅動、非同步IO、同步IO,本篇主要介紹IO多路複用的使用和程式設計。 IO多路複用的概念 多路複用是一種機制,可以用來監聽多種描述符,如果其中任意一個描述符處

IO多路 -- selectpollepoll實現TCP反射程式

接著上文IO多路複用(一)-- Select、Poll、Epoll,接下來將演示一個TCP回射程式,原始碼來自於該博文https://www.cnblogs.com/Anker...,在這裡將其進行了整合,突出select、poll和epoll不同方法之間的比較,但

網路通訊 :IO多路之selectpollepoll詳解

 目前支援I/O多路複用的系統呼叫有 select,pselect,poll,epoll,I/O多路複用就是通過一種機制,一個程序可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程式進行相應的讀寫操作。但select,pselect,poll,epoll

I/O多路之selectpollepoll

很早之前有寫過篇IO多路複用的文章:https://www.cnblogs.com/klcf0220/archive/2013/05/14/3077003.html 參考連結:https://segmentfault.com/a/1190000003063859 select,poll,epoll都是IO多路

6數字調製與多路物理層

引言 有線和無線通道運載模擬訊號,模擬訊號可以表示成諸如連續變化的電壓、光照強度或者聲音強度。為了傳送數字資訊,必須設法用模擬訊號來表示位元。位元與代表它們訊號之間的轉換過程稱為數字調製。 如何把位元直接轉換成訊號的一些方案導致了基帶傳輸的出現,即訊號的傳輸佔有傳輸介質上從

Linux雲端計算——KVM虛擬化後端virsh命令

顯示英文版本幫助 LANG=en_US.UTF-8 命令 --help 顯示中文版本幫助 LANG=zh_CN.UTF-8 命令 --help 虛擬化     定義: 把一個或者多個物理資源轉換成一個或者多個邏輯資源,這些邏輯資源就可以用來建立虛擬機器     詳細解

IO模型——阻塞IO非阻塞IO多路IO非同步IOselectors模組

目錄 一、IO模型介紹   為了更好地瞭解IO模型,我們需要事先回顧下:同步、非同步、阻塞、非阻塞     同步(synchronous) IO和非同步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blo

I/O之selectpollepoll函式

為了提高程式處理效率和機制,經常需要一個程式可以達到監聽甚至處理多個檔案描述符的效能,為了帶到這種機制我們需要借用I/O複用來實現。I/O複用雖然可以同時處理多個檔案,但是它本身是阻塞的。就是當檔案有多個就緒的時候程式檢測到了才會繼續往下執行,而且在執行的時候如

看看八年前的阻塞非阻塞多路訊號驅動非同步IO總結

尊重原創,來自八年前的IO總結https://blog.csdn.net/historyasamirror/article/details/4270633 阻塞IO: 執行過程 使用者請求資料,系統核心(kernel)開始準備資料,使用者程序被阻塞

IO多路之selectpollepoll詳解

  ET(edge-triggered)是高速工作方式,只支援no-block socket。在這種模式下,當描述符從未就緒變為就緒時,核心通過epoll告訴你。然後它會假設你知道檔案描述符已經就緒,並且不會再為那個檔案描述符傳送更多的就緒通知,直到你做了某些操作導致那個檔案描述符不再為就緒狀態了(比如,你在