1. 程式人生 > >Android開發之在xml中設定自定義屬性

Android開發之在xml中設定自定義屬性

xml中設定自定義屬性

分三步:

1. 在專案中的values檔案中建立attrs檔案

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

    <declare-styleable name="QLoadingIndicatorView">
        
        <attr name="indicatorId" format="integer"/>
        <attr name="indicatorColor" format="color"/>
        <attr name="indicatorText" format="string"/>
    </declare-styleable>

</resources>

2. 在view中關聯這些屬性

public class MyView extends LinearLayout {

    private int mIndicatorColor,mIndicatorId;
    private String mIndicatorText;

    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        //從xml的屬性中獲取到值,然後想怎麼用就怎麼用
        TypedArray ta=context.obtainStyledAttributes(attrs,R.styleable.QLoadingIndicatorView);
        mIndicatorColor=ta.getColor(R.styleable.QLoadingIndicatorView_indicatorColor,Color.BLACK);//第二個引數是設定的預設值,當你不設定這個屬性時會使用這個值
        mIndicatorId=ta.getInt(R.styleable.QLoadingIndicatorView_indicatorId,1);
        mIndicatorText=ta.getString(R.styleable.QLoadingIndicatorView_indicatorText,"abc");
        ta.recycle();

    }
}


3.xml檔案中設定屬性和名稱空間

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"	  //這就是自己定義的屬性的名稱空間,androidstudio是這樣寫的,新增屬性的時候自動生成
    android:rowCount="9"
    android:columnCount="4">
    <com.zxq.com.myrecycleview.progressbaranimation.QLoadingIndicatorView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_margin="10dp"
        app:indicatorId="0"		//自己的設定的屬性				
        app:indicatorColor="#F00"
        >
    </com.zxq.com.myrecycleview.progressbaranimation.QLoadingIndicatorView>
</GridLayout>


相關推薦

Android開發xml設定定義屬性

xml中設定自定義屬性 分三步: 1. 在專案中的values檔案中建立attrs檔案 <?xml version="1.0" encoding="utf-8"?> <resourc

JavaEE開發SpringMVC定義攔截器及異常處理

上篇部落格我們聊了《》,本篇部落格我們就聊一下自定義攔截器的實現、以及使用ModelAndView物件將Controller的值載入到JSTL上、最後再聊一下異常的捕獲處理。這些在日常開發中都是經常使用的東西。具體請看下方內容。 一、自定義攔截器 顧名思義,攔截器是負責攔截某些東西的工具。本部分我們建立的攔

JavaEE開發SpringMVC定義訊息轉換器與檔案上傳

上篇部落格我們詳細的聊了《》,本篇部落格依然是JavaEE開發中的內容,我們就來聊一下SpringMVC中的自定義訊息轉發器(HttpMessageConverter)和SpringMVC中的檔案上傳。訊息轉發器在日常開發中是比較常用的,其可以靈活的將使用者發過來的訊息按照自定義的格式進行解析,然後將解析的資

iOS開發如何在NSURLRequest設定定義header請求頭

在使用百度API的時候需要在HTTP請求頭中增加一個apikey,後來我查到已經有相關文章了:http://ju.outofmemory.cn/entry/136630 不過此文章寫得讓人有點看不明白,所以我根據此文章重新介紹如何在NSURLRequest設定自定義請求頭

Android定義View的研究 -- 在XML引用定義View

如果在一直使用SetContentView(new HellwView(this)覺得總是少了一點東西,少了什麼了,失去了Android中使用XML定義元件的便攜性,這種感覺讓人很不爽,呵呵,在這節裡我們會看到一個自定義View報錯的解決方法,讓我們來看看在XML中定義Vi

android style.xml檔案使用定義屬性

直接使用屬性名就行了 不用加名稱空間了 程式碼如下: <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android

Android開發Webview原生與JS互動

文章目錄 概述 使用場景 互動方式 Java呼叫JS程式碼 JS呼叫Java程式碼 總結 概述 由於手機硬體資源的快速提升,使得采用混合開發的可能性逐漸成為現實並且流行起來。Android開發中

Android開發(AlertDialog對話方塊定義佈局和多選列表不共存的替代辦法)

這個實現功能花了一點時間,當時忙了很晚,只怪當時沒有想出其他解決辦法。言歸正傳。 前幾天有這麼一個小夥伴,在開發有這樣的地圖app,該地圖app有多個地圖圖層,這些地圖圖層可提供給使用者操作,比如說圖層的顯示控制,以及選擇需要的圖層供查詢。由於該地圖app在主介面已經佈局很

Android 深入理解Android定義屬性

1、引言 對於自定義屬性,大家肯定都不陌生,遵循以下幾步,就可以實現: 自定義一個CustomView(extends View )類 編寫values/attrs.xml,在其中編寫styleable和item等標籤元素 在佈局檔案中CustomView使用自定義的屬性(

Android開發ScrollView巢狀ListView的解決方案

import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.BaseAdapter;

Android Studio 佈局引用定義屬性不提示的問題

Eclipse裡面自定義屬性的名稱空間的宣告一般都是 xmlns:app="http://schemas.android.com/apk/res/com.xxx(包名) 而Android Stu

curl模擬資料請求,在header頭設定定義的引數

我們定義了三個引數,token、language、region,放入header傳送過去 <?php $url = 'http://www.example.com'; $header = ar

Swift設定定義tabBar按鈕的動畫效果

將此段程式碼放到自定義的UITabBarController指令碼中即可 //---------------------------------------------------- //

如何在webview設定定義字型

In your assets/fonts folder, place the desired OTF or TTF font (here MyFont.otf) Create a HTML file that you'll use for the WebView's c

Android開發drawable的命名問題

今天,應一個同事的請求,幫助他在我現有app的基礎上給他修改意見個app,用來測試他的後臺應用。我就順道從網上找了一個應景的圖片,修改之後直接新增進了drawable資料夾下,結果剛加進去就發現專案報錯了,wtf???本來好好的,怎麼會這樣?我各種翻騰,clean,都沒效果

如何在xml使用定義的ViewGroup元件

1.ViewGroup的介紹: /**  * A ViewGroup is a special view that can contain other views  * (called children.) The view group is the base clas

在curl設定定義的HTTP頭

問題:我正嘗試使用curl命令獲取一個URL,但除此之外我還想在傳出的HTTP請求中設定一些自定義的頭部欄位。我如何能夠在curl中使用自定義的HTTP頭呢? curl是一個強大的命令列工具,它可以通過網路將資訊傳遞給伺服器或者從伺服器獲取資料。他支援很多的傳輸協議,尤

Android開發呼叫系統設定介面

1.系統設定介面 startActivity(new Intent(Settings.ACTION_SETTINGS)); 2.當前應用的設定介面 Intent intent = new Intent

Android定義屬性attrs

1、引言 對於自定義屬性,大家肯定都不陌生,遵循以下幾步,就可以實現: 自定義一個CustomView(extends View )類編寫values/attrs.xml,在其中編寫styleable和item等標籤元素在佈局檔案中CustomView使用自定義的屬性(

帶你深入理解Android定義屬性!!!

att omv world 過程 參數 and pla 開發 dimen 引言 對於自定義屬性,大家肯定都不陌生,遵循以下幾步,就可以實現: 1.自定義一個CustomView(extends View )類 2.編寫values/attrs.xml,在其中編寫styl