android自定義控制項的乙個思路 入門

2021-09-06 22:26:40 字數 2682 閱讀 4442

很多時候沒有我們需要使用的控制項,或者控制項並不美觀。比如這個滑動開關,這是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...