日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android UI编程之自定义控件初步(下)——CustomEditText

發布時間:2025/3/20 Android 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android UI编程之自定义控件初步(下)——CustomEditText 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述:

? ? 基于對上一篇博客《Android UI編程之自定義控件初步(上)——ImageButton》的學習,我們對自定義控件也有了一個初步的認識。那現在我們可以再試著對EditText進行一些自定義的學習。以下有兩種方式的自定義UI編程分享給大家。由于在上一篇博客中,有對自定義控件的一些詳細地說明,在本篇博客中,如果你還有一些沒搞懂的地方,可以參見上一篇博客《Android UI編程之自定義控件初步(上)——ImageButton》進行學習。


示例:帶刪除按鈕的輸入框

效果圖展示:

?


基本雛形搭建:

? ? 大家可以從上面的效果圖上看到兩個東西:左側的EditText和右側的圖片(這里是一個Button)。我們在EditText中的輸入為空的時候,不顯示右側的清除按鈕。一旦EditText中輸入了內容的時候,右側的清除按鈕就會顯示出來。


外觀設計和功能添加:

1.外觀設計

在我們選好了骨架之后,剩下的就是穿衣服了。現在我們來看看怎么給它穿衣服。以下是示例代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><EditTextandroid:id="@+id/input_edittext"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="10dp"android:layout_marginTop="5dp"android:layout_marginBottom="5dp"android:background="@null"android:layout_toLeftOf="@+id/clear_button"android:ems="10" ></EditText><Buttonandroid:id="@+id/clear_button"android:layout_width="30dp"android:layout_height="30dp"android:layout_centerVertical="true"android:background="@drawable/clear_button"android:layout_marginRight="10dp"android:layout_alignParentRight="true"android:visibility="invisible" /></RelativeLayout>

2.功能添加

功能的添加是要在Java代碼中去實現的,因為Java代碼可以動態去調節功能,而在xml代碼中卻寫不出動態調節功能的效果。Java代碼中實現各功能如下:

監聽文本框功能:

public void addTextChangedListener() {mInput.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {int len = mInput.getText().toString().length();if (len > 0) {mClear.setVisibility(View.VISIBLE);} else {mClear.setVisibility(View.INVISIBLE);}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void afterTextChanged(Editable s) {}});}


清除文本功能:

private void setClearEvent() {mClear.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {mInput.setText("");}});}


使用分析:

1.xml代碼中的使用

代碼如下:

<com.demo.customview.clearedittext.widgets.ClearEditTextandroid:id="@+id/activity_main_clear_edittext"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp" />

2.Java代碼中的使用

ClearEditText clearEditText = (ClearEditText) findViewById(R.id.activity_main_clear_edittext); clearEditText.setHint("輸入文本進行測試"); clearEditText.addTextChangedListener();


示例:在EditText插入表情

效果圖展示:



自定義類實現:

這邊就不去長篇累牘介紹了。因為內容很單。Java實現代碼如下:

public class SmiliesEditText extends EditText {public SmiliesEditText(Context context) {super(context);}public SmiliesEditText(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);}public void insertIcon(int id) {// SpannableString連續的字符串,長度不可變,同時可以附加一些object;可變的話使用SpannableStringBuilder,參考sdk文檔SpannableString ss = new SpannableString(getText().toString() + "[smile]");// 得到要顯示圖片的資源Drawable d = getResources().getDrawable(id);// 設置高度d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());// 跨度底部應與周圍文本的基線對齊ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);// 附加圖片ss.setSpan(span, getText().length(),getText().length() + "[smile]".length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);setText(ss);} }

使用分析:

1.xml代碼中的使用

<com.demo.customview.clearedittext.widgets.SmiliesEditTextandroid:id="@+id/activity_main_similies_edittext"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@+id/activity_main_clear_edittext"android:singleLine="true"android:text="Hello smile"android:hint="你可以輸入表情哦"android:textSize="14sp"android:layout_marginTop="20dp" />

2.Java代碼中的使用

SmiliesEditText et=(SmiliesEditText)findViewById(R.id.activity_main_similies_edittext);et.insertIcon(R.drawable.smile);System.out.println(et.getText().toString());


源代碼下載:

http://download.csdn.net/detail/u013761665/8410583

總結

以上是生活随笔為你收集整理的Android UI编程之自定义控件初步(下)——CustomEditText的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 67194av| 变态另类一区 | 欧美一区二区三区精品 | h在线网站 | 视频精品一区二区 | 99插插插 | 成人午夜视频一区二区播放 | 欧美日韩久久久久久 | 欧美黄色一级片视频 | av手机在线观看 | 久热一区 | 国产精品一区二区性色av | 色吧在线视频 | 欧美日韩精品电影 | 午夜福利理论片在线观看 | 手机看片一区二区三区 | 久久久久久a| 后进极品白嫩翘臀在线视频 | 日韩av网站在线 | 国产精品第一区 | 国产99精品视频 | 女生被男生桶 | 东南亚毛片 | 欧美一区二区国产 | 国产无套免费网站69 | 日韩久久av | 日韩久草| 成人特级片 | 中文字幕被公侵犯的漂亮人妻 | 日韩电影福利 | 林雅儿欧洲留学恋爱日记在线 | 91视频免费网站 | 欧美性受xxx黑人xyx性爽 | 亚洲国产精选 | japanese中文字幕| 久久久午夜影院 | 国产特级黄色录像 | 亚洲精品乱码久久 | 人妻夜夜爽天天爽 | 亚洲av日韩av在线观看 | 精品成人久久久 | 日本成人毛片 | 天天色综合av | 久久b| 婷婷色在线观看 | 97久久久 | 国产女人18毛片水18精品 | 天堂网av手机版 | 亚洲女人av | 操小妞 | 欧美日韩国产一区在线 | 国产精品久久 | 大又大粗又爽又黄少妇毛片 | 一级特黄aa大片免费播放 | 欧美体内she精高潮 日韩一区免费 | 人妻一区二区三区免费 | 大象传媒成人在线观看 | 四虎综合网 | 男女视频国产 | 黄色一级片黄色一级片 | 欧美巨乳美女 | 色 综合 欧美 亚洲 国产 | 亚洲网在线观看 | 日韩免费av一区 | 二区三区免费 | 午夜av大片| 男女无套免费视频网站动漫 | 中文字幕岛国 | 天天干天天天 | 香蕉成视频人app下载安装 | 九九热免费在线视频 | 免费观看黄色的网站 | 久久国产精品系列 | 亚洲一区中文字幕在线观看 | 国产av人人夜夜澡人人爽麻豆 | 国产精品久久久久无码av色戒 | 亚洲性欧美色 | 人人射视频 | 国产欧美日韩综合精品一区二区三区 | 欧美激情偷拍 | 亚洲精久久 | 国产精品自拍电影 | 性史性农村dvd毛片 日韩精品在线视频观看 | 国产精品毛片va一区二区三区 | 91一区| 三上悠亚中文字幕在线播放 | 日韩精品一区二区av | www.国产免费 | 丰满少妇xoxoxo视频 | 亚洲www在线观看 | 色吧av| 欧美成人免费在线视频 | 肉丝袜脚交视频一区二区 | 青青草久久 | 久久久久亚洲av成人无码电影 | 国产成人短视频在线观看 | 精品爆乳一区二区三区 | 最新中文av | 一区二区三区在线视频播放 |