Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義Button

Android自定義Button

編輯:關於Android編程


1. 不用再定義Listener
直接調用 performClick ,裡面會調用View.OnClickListener

2. Drawable
資源裡的真正圖形資源,如png, gif等,在加載時實際上都是BitmapDrawable類型的對象。
mIconAccept = (BitmapDrawable)context.getResources()
.getDrawable(R.drawable.latebutton_ok);
應該直接轉換成BitmapDrawable對象,以便在canvas裡可以直接drawBitmap

3. 圖形的顯示大小: 雖然圖形可能是32*32,但在代碼應該調用以下2個函數來獲取長寬
mIconAccept.getIntrinsicWidth()
mIconAccept.getIntrinsicHeight()

4. 繼承於Button應該會更方便

5. 使用已經存在的attribute
使用android:text屬性來設置文本, 在代碼用getAttributeValue()來獲取。注意namespace要用全稱。
android:id="@+id/lateButton1"
android:layout_width="300dp"
android:layout_height="36dp"
android:text="查詢" />

public LateButton(Context context, AttributeSet attrs)
{
super(context, attrs);

mText = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "text");
if(mText == null) mText = "Default Text";
}

6. 區分編輯狀態
public LateButton(Context context, AttributeSet attrs)
{
super(context, attrs);
if(! this.isInEditMode())
{
mIconAccept = (BitmapDrawable)context.getResources()
.getDrawable(R.drawable.latebutton_icon);
}
7. 顯示所有屬性
for(int i=0; i {
String name = attrs.getAttributeName(i);
String value = attrs.getAttributeValue(i);
//Log.d("mylog", "attr :" + name + "= " + value);
if(name.equals("text"))
mText = value;
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved