效果圖:
關狀態 中間拖動 開開關
素材
關狀態的背景圖
開狀態的背景圖
拖動的按鈕
下面就直接來看看**吧:
一、自定義的乙個控制項:
一、自定義的乙個控制項:
package com.zhong.newswitch.view;
import android.content.context;
import android.content.res.typedarray;
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.graphics.canvas;
import android.util.attributeset;
import android.view.motionevent;
import android.view.view;
import com.zhong.newswitch.r;
public class slideswitch extends view
public slideswitch(context context)
public slideswitch(context context, attributeset attrs)
public slideswitch(context context, attributeset attrs, int defstyle)
private void init(context context, attributeset attrs, int defstyle)
}@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
@override
protected void ondraw(canvas canvas)
if (countx > (imgoff.getwidth() - imgbtn.getwidth() / 2))
//當移動過了中間線左邊時為關,在右邊背景改為開的
if (countx < imgoff.getwidth() / 2) else
//繪製小按鈕
canvas.drawbitmap(imgbtn, countx - imgbtn.getwidth() / 2 - 2, 0, null);
}@override
public boolean ontouchevent(motionevent event) else
//判斷是否有監聽如果沒有設定監聽不呼叫,判斷現在的狀態原先的狀態是否一樣,如果一樣不呼叫
if (listener != null&&laststaete!=switchstate)
laststaete = switchstate;
break;
case motionevent.action_down:
break;
case motionevent.action_move:
break;
}invalidate();
return true;
}//新增乙個可以設定選中狀態的方法
public void setswitchstate(boolean state) else
}//新增乙個開關事件的監聽介面
public inte***ce onswitchstatechanglistener
}
二、自定義乙個第一在xml中用的屬性
在res目錄下鍵 res-values-slft_attrs.xml
<?xml version="1.0" encoding="utf-8"?>
三、main.xml中的**
<?xml version="1.0" encoding="utf-8"?>
四 、mainactivity中的**
package com.zhong.newswitch;
import android.os.bundle;
import android.widget.toast;
import com.zhong.newswitch.view.slideswitch;
public class mainactivity extends activity
});}
}
ok了 android 自定義元件隨著手指自動畫圓
首先自定義乙個view子類 package com.example.androidtest0.myview import android.content.context import android.graphics.canvas import android.graphics.color impo...
自定義View,建立乙個小圓點,單擊可以拖動
xml version 1.0 encoding utf 8 xmlns android xmlns xmlns tools android layout width match parent android layout height match parent tools context com....
自定義View上(做乙個可拖動的控制項)
布局 xml version 1.0 encoding utf 8 android.support.constraint.constraintlayoutxmlns android xmlns xmlns tools android layout width match parent android...