欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 自定義View 密碼框?qū)嵗a

 更新時間:2016年06月07日 09:48:36   作者:雨知  
這篇文章主要介紹了Android 自定義View 密碼框?qū)嵗a的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下

暴露您view中所有影響可見外觀的屬性或者行為。

•通過XML添加和設(shè)置樣式

•通過元素的屬性來控制其外觀和行為,支持和重要事件交流的事件監(jiān)聽器

詳細步驟見:Android 自定義View步驟

效果圖展示:

支持的樣式

可以通過XML定義影響外邊和行為的屬性如下

邊框圓角值,邊框顏色,分割線顏色,邊框?qū)挾?,密碼長度,密碼大小,密碼顏色

<declare-styleable name="PasswordInputView">
<attr name="borderWidth" format="dimension"/>
<attr name="borderColor" format="color"/>
<attr name="borderRadius" format="dimension"/>
<attr name="passwordLength" format="integer"/>
<attr name="passwordWidth" format="dimension"/>
<attr name="passwordColor" format="color"/>
<attr name="passwordRadius" format="dimension"/>
</declare-styleable> 

同時支持原來EditText功能,可以獲得數(shù)據(jù)值,數(shù)字鍵盤設(shè)置等

繪制邏輯的主要代碼

protected void onDraw(Canvas canvas) {
int width = getWidth();
int height = getHeight();
// 外邊框
RectF rect = new RectF(0, 0, width, height);
borderPaint.setColor(borderColor);
canvas.drawRoundRect(rect, borderRadius, borderRadius, borderPaint);
// 內(nèi)容區(qū)
RectF rectIn = new RectF(rect.left + defaultContMargin, rect.top + defaultContMargin,
rect.right - defaultContMargin, rect.bottom - defaultContMargin);
borderPaint.setColor(Color.WHITE);
canvas.drawRoundRect(rectIn, borderRadius, borderRadius, borderPaint);
// 分割線
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);
}
// 密碼
float cx, cy = height/ 2;
float half = width / passwordLength / 2;
for(int i = 0; i < textLength; i++) {
cx = width * i / passwordLength + half;
canvas.drawCircle(cx, cy, passwordWidth, passwordPaint);
}
} 

相關(guān)文章

  • Android TabHost組件使用方法詳解

    Android TabHost組件使用方法詳解

    這篇文章主要以實例講解的方式為大家詳細介紹了Android TabHost組件的使用方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android?Flutter中異常處理的方法總結(jié)

    Android?Flutter中異常處理的方法總結(jié)

    這篇文章主要為大家詳細介紹了Android?Flutter中異常處理的相關(guān)知識,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Android實現(xiàn)網(wǎng)易云音樂的旋轉(zhuǎn)專輯View

    Android實現(xiàn)網(wǎng)易云音樂的旋轉(zhuǎn)專輯View

    這篇文章主要為大家詳細介紹了Android實現(xiàn)網(wǎng)易云音樂的旋轉(zhuǎn)專輯View,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • android 自定義ScrollView實現(xiàn)背景圖片伸縮的實現(xiàn)代碼及思路

    android 自定義ScrollView實現(xiàn)背景圖片伸縮的實現(xiàn)代碼及思路

    本文純屬個人見解,是對前面學(xué)習(xí)的總結(jié),如有描述不正確的地方還請高手指正~,首先還是按照通例給大家看下示例.
    2013-05-05
  • Android 調(diào)用百度地圖API示例

    Android 調(diào)用百度地圖API示例

    在Android開發(fā)中有一個非常重要的應(yīng)用就是實時定位,通過手機在手機地圖上進行實時定位,定位當(dāng)前手機的位置,這篇文章主要介紹了Android 調(diào)用百度地圖API示例,有興趣的可以了解一下。
    2017-01-01
  • 詳解Android消息機制完整的執(zhí)行流程

    詳解Android消息機制完整的執(zhí)行流程

    經(jīng)過前面幾篇文章的鋪墊,介紹了Hanlder、Message等類相關(guān)使用,分析了其與Looper、MessageQueue的部分源碼,本篇文章主要是集中梳理Android整個消息機制執(zhí)行的完整流程,需要的可以參考一下
    2022-10-10
  • Android實現(xiàn)九宮格解鎖

    Android實現(xiàn)九宮格解鎖

    根據(jù)最近Android項目需要,實現(xiàn)九宮格解鎖效果,下面小編給大家分享了具體實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Android Studio使用教程(四):Gradle基礎(chǔ)

    Android Studio使用教程(四):Gradle基礎(chǔ)

    這篇文章主要介紹了Android Studio使用教程(四):Gradle基礎(chǔ),本文講解了什么是Gradle、安裝Gradle、Gradle 基本概念等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Android 進程間通信實現(xiàn)原理分析

    Android 進程間通信實現(xiàn)原理分析

    只有你允許客戶端從不同的應(yīng)用程序為了進程間的通信而去訪問你的service,以及想在你的service處理多線程,下面為大家詳細介紹下
    2013-06-06
  • android中webview控件和javascript交互實例

    android中webview控件和javascript交互實例

    這篇文章主要介紹了android中webview控件和javascript交互實例,例子中包括javascript調(diào)用java的方法,java代碼中調(diào)用javascript的方法,需要的朋友可以參考下
    2014-07-07

最新評論