android 仿照ihone開關

2021-06-03 23:10:15 字數 1965 閱讀 8163

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

package com.android.switctview;

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 switchview extends view implements ontouchlistener

public switchview(context context, attributeset attrs)

private void init()

protected void setimageresource(int switchonbkg, int switchoffbkg, int slipbtn)

protected void setswitchstate(boolean switchstate)

protected boolean getswitchstate()

protected void updateswitchstate(boolean switchstate)

@override

protected void ondraw(canvas canvas) else

//判斷當前是否正在滑動

if(isslipping) else

} else else

}//對滑動按鈕的位置進行異常判斷

if(left_slipbtn < 0) else if(left_slipbtn > switch_on_bkg.getwidth() - slip_btn.getwidth())

canvas.drawbitmap(slip_btn, left_slipbtn, 0, paint);

}@override

public boolean ontouch(view v, motionevent event)

isslipping = true;

previousx = event.getx();

currentx = previousx;

break;

//鬆開

case motionevent.action_up:

isslipping = false;

//鬆開前開關的狀態

boolean previousswitchstate  = isswitchon;

if(event.getx() >= (switch_on_bkg.getwidth() / 2)) else

//如果設定了***,則呼叫此方法

if(isswitchlisteneron && (previousswitchstate != isswitchon))

break;

default:

break;

}//重新繪製控制項

invalidate();

return true;

}public void setonswitchlistener(onswitchlistener listener)

public inte***ce onswitchlistener

}

linux ubuntu 之android開發日記

相關軟體安裝與使用 linux之bash相關命令的學習 tar cf archive.tar foo bar create archive.tar from files foo and bar.將foo,bar歸檔為archive.tar tar tvf archive.tar list all f...

搭建Android開發的Flutter開發環境

因為在國內訪問flutter有時可能會受到限制,flutter官方問中國開發者搭建了臨時映象,需要配置環境變數 pub hosted url flutter storage base url 如果這個映象不可用,可以參考using flutter in china 獲取有關映象伺服器的最新動態.將安...

如何使用github上的android開源專案

其實跟簡單,就跟引用android v7工程那樣 然後 引用 最後,就像使用自定義的view那樣使用 下面是詳細的步驟 我就以pulltorefresh為例,從頭開始說吧。開啟eclipse,file import existing android code into workspace 選中lib...