最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android仿支付寶密碼輸入效果封裝

 更新時(shí)間:2017年12月04日 09:33:11   作者:按勞分配  
這篇文章主要為大家詳細(xì)介紹了Android仿支付寶密碼輸入效果的封裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

模仿支付寶輸入效果,實(shí)現(xiàn)很簡(jiǎn)單,就是畫(huà)個(gè)矩形框和圓形,其他的通過(guò)組合view來(lái)實(shí)現(xiàn)所有功能,雖然簡(jiǎn)單但是封裝起來(lái),方便以后使用,也分享一下,希望對(duì)別人也有點(diǎn)幫助。

1、如何使用,可以設(shè)置自己的進(jìn)入退出動(dòng)畫(huà),不設(shè)置則沒(méi)有動(dòng)畫(huà)效果,自己覺(jué)得封裝之后還是非常用好的。

private MyInputPwdUtil myInputPwdUtil;
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 myInputPwdUtil = new MyInputPwdUtil(this);
 myInputPwdUtil.getMyInputDialogBuilder().setAnimStyle(R.style.dialog_anim);

 //可以定制自己進(jìn)入退出動(dòng)畫(huà),不設(shè)置沒(méi)有動(dòng)畫(huà)
 myInputPwdUtil.setListener(new InputPwdView.InputPwdListener() {
 @Override
 public void hide() {
  myInputPwdUtil.hide();
 }

 @Override
 public void forgetPwd() {
  Toast.makeText(MainActivity.this, "忘記密碼", Toast.LENGTH_SHORT).show();
 }

 @Override
 public void finishPwd(String pwd) {
  Toast.makeText(MainActivity.this, pwd, Toast.LENGTH_SHORT).show();
 }
 });
}
public void show(View view){
 myInputPwdUtil.show();
}

2、輸入框?qū)崿F(xiàn)主要代碼,就是繪制矩形和中間的圓形而已。

 int height = getHeight();
 int width = getWidth();
 //畫(huà)邊框
 RectF rect = new RectF(0, 0, width, height);
 borderPaint.setColor(borderColor);
 canvas.drawRoundRect(rect, borderRadius, borderRadius, borderPaint);
 //畫(huà)內(nèi)容區(qū)域
 RectF rectContent = new RectF(rect.left + defaultContentMargin, rect.top + defaultContentMargin, rect.right - defaultContentMargin, rect.bottom - defaultContentMargin);
 borderPaint.setColor(getResources().getColor(R.color.myInputPwdBase_gray));
 canvas.drawRoundRect(rectContent, borderRadius, borderRadius, borderPaint);

 //畫(huà)分割線:分割線數(shù)量比密碼數(shù)少1
 borderPaint.setColor(borderColor);
 borderPaint.setStrokeWidth(defaultSplitLineWidth);
 for (int i = 1; i < passwordLength; i++) {
 float x = width * i / passwordLength;
 canvas.drawLine(x, 0, x, height, borderPaint);
 }

 //畫(huà)密碼內(nèi)容
 float px, py = height / 2;
 float halfWidth = width / passwordLength / 2;
 for (int i = 0; i < textLength; i++) {
 px = width * i / passwordLength + halfWidth;
 canvas.drawCircle(px, py, passwordWidth, passwordPaint);
 }

3、作為library的module,在定義使用到的屬性的時(shí)候最好特別能區(qū)分開(kāi),設(shè)置特定的開(kāi)頭,這樣能避免引入自己的工程之后導(dǎo)致沖突。

如有bug,謝謝指出。

源碼下載

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

宣化县| 廉江市| 会泽县| 新宁县| 阿克| 高淳县| 元阳县| 轮台县| 衡南县| 上杭县| 阿坝县| 德江县| 霍城县| 碌曲县| 祁东县| 岳阳市| 兴城市| 乌鲁木齐市| 当雄县| 嘉峪关市| 九龙坡区| 修文县| 平湖市| 琼海市| 乌鲁木齐市| 汝州市| 宣化县| 荆门市| 德州市| 原平市| 页游| 衡阳县| 洪湖市| 商丘市| 临安市| 定南县| 淄博市| 喀喇沁旗| 攀枝花市| 达拉特旗| 夏河县|