很多時候沒有我們需要使用的控制項,或者控制項並不美觀。比如這個滑動開關,這是android之後的版本才提供的控制項,新版本並不提供,這個時候就需要我們自定義控制項了。
乙個2個主要類,onchangedlistener,slipbutton
slipbutton**如下
import android.content.context;
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.graphics.canvas;
import android.graphics.matrix;
import android.graphics.paint;
import android.graphics.rect;
import android.util.attributeset;
import android.view.motionevent;
import android.view.view;
import android.view.view.ontouchlistener;
public class slipbutton extends view implements ontouchlistener
public slipbutton(context context, attributeset attrs)
public slipbutton(context context, attributeset attrs, int defstyle)
private void init()
@override
protected void ondraw(canvas canvas)
else
}elseelse }
if(nowx
else
if(x<0)
else if(x>bg_on.getwidth()-slip_btn.getwidth())
canvas.drawbitmap(slip_btn, x, 0,paint); }
public boolean ontouch(view v, motionevent event)
onslip=true;
downx=event.getx();
nowx=downx;
break;
case motionevent.action_up:
onslip=false;
boolean lastchoose=nowchoose;
if(event.getx()>=(bg_on.getwidth()/2))
else
if(ischglsnon&&(lastchoose!=nowchoose))
break;
default:
break; }
invalidate();
return true; }
public void setonchangelistener(onchangedlistener l)
public boolean isnowchoose()
public void setnowchoose(boolean nowchoose)
} onchangedlistener**如下
public inte***ce onchangedlistener
主activity**如下
import android.os.bundle;
import android.widget.toast;
public class onoffactivity extends activity
else
if (checkstate)
toast.maketext(onoffactivity.this, "button1開啟了..."+s,
toast.length_short).show();
else
toast.maketext(onoffactivity.this, "button1關閉了..."+s,
toast.length_short).show();
}});}}
布局檔案**如下
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/back"
>
android:id="@+id/slipbutton1"
android:layout_width="wrap_content"
android:layout_height="49dp" />
android:id="@+id/slipbutton2"
android:layout_width="wrap_content"
android:layout_height="fill_parent" />
Android 自定義控制項
幹android也有一段的時間了,自定義這塊的東西覺得還是很有比較複習一下基礎的東西。自定義控制項和自定義元件基本上的使用都是在專案中基本的android控制項滿足不了需求的時候使用的。所以,如果要高出特別炫的特效,或者比較特殊的控制項排列方式,例如瀑布流,那麼就要好好學學自定義咯。首先,先簡單的介...
android自定義控制項
android自定義控制項 二 入門,繼承view 說說android 兩種為自定義元件新增屬性的使用方法和區別 自定義控制項的屬性 自定義控制項 今天花了3,4個小時看了自定義控制項,看 懂了,還沒有實踐,因為時間不夠,日後實踐。總結下 自定義控制項有3種方式 繼承已有控制項 繼承乙個容器控制項,...
Android自定義控制項
android學習筆記,整理給自己複習的時候看的,謝謝!1.自定義開關 1.宣告介面物件 public inte ce onswitchstateupdatelistener 2.新增設定介面物件的方法,外部進行呼叫 public void setonswitchstateupdatelistene...