日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 草色噜噜噜av在线观看香蕉 | 青青草视频免费看 | 五月婷婷视频 | 国产精品电影一区二区 | 国产成人一区二区三区 | 视频在线日韩 | 国产精品无码99re | 男生插女生的视频 | 日批视频免费 | 久久影视中文字幕 | 日韩福利一区二区三区 | 黄色av视屏 | 国产精品1区2区 | 一区二区三区四区精品视频 | 男人的天堂av网站 | 日韩福利片在线观看 | 99久久精品一区 | 污到下面流水的视频 | 精品视频一区二区三区在线观看 | 337p日本大胆噜噜噜鲁 | 精品一区二区三区免费看 | 亚洲 欧美 中文字幕 | 天天艹夜夜 | 你懂得在线| 女人的av | 亚洲精品久久久久久久久久久 | 中文字幕第二页 | 在线精品国产 | 久久久精品人妻av一区二区三区 | 五月激情婷婷综合 | 亚洲永久精品一区二区 | 国产成人一区二区三区视频 | 中文字幕久久一区 | 爱色成人网 | 抽插丰满内射高潮视频 | 国产精品成人久久久久 | jiz亚洲 | 亚洲人成色777777精品音频 | 6080黄色 | 色婷婷中文| 色综合天| 久草播放 | 动漫女生光屁股 | 18成人免费观看视频 | 国产av一区二区三区精品 | 啪啪自拍视频 | 亚洲一区二区三区精品视频 | 久久毛片基地 | 欧洲一区二区三区在线 | 国产欧美一区二区三区免费看 | 日本性久久 | www.色com| 国产21页| 落日余晖 | 天天噜| 免费一级黄 | gv天堂gv无码男同在线观看 | 理想之城连续剧40集免费播放 | 国产女主播自拍 | 在线免费观看亚洲 | 免费黄色三级 | 国产精品日日摸天天碰 | 狠狠干一区二区 | 亚洲欧美日韩国产精品 | 亚洲av乱码一区二区 | 日韩美女激情视频 | 老司机黄色片 | 日韩理论片 | 四虎永久免费影院 | 九九热精品免费视频 | 老妇裸体性激交老太视频 | 欧美特黄一级视频 | 国产精品久久影院 | 国产美女无遮挡网站 | 亚洲伊人久久综合 | 日韩福利视频在线观看 | 叶全真三级 | 欧美日韩亚洲色图 | 免费毛片一区二区三区 | 天天干在线播放 | 男人舔女人下部高潮全视频 | 99国产精品人妻噜啊噜 | 中文久草 | 国产男男gay| 欧美丰满熟妇bbbbbb | www国产亚洲精品久久网站 | 91中文在线| 黄色成年视频 | 中国美女毛片 | 91视频在线观看视频 | 好吊色欧美一区二区三区视频 | av小片 | 亚洲19p| 新x8x8拨牐拨牐永久免费影库 | 2019国产在线 | 乌克兰性极品xxxhd | 久色成人网 | www99热| 羞羞影院体验区 |