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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

可以响应各个方向CompoundDrawables点击操作的TextView的使用

發布時間:2025/3/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 可以响应各个方向CompoundDrawables点击操作的TextView的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要介紹如何使用一個可以響應各個方向CompoundDrawables點擊操作的TextView。關于其實現原理見可以響應各個方向CompoundDrawables點擊操作的TextView的實現原理。


TextView可以通過setCompoundDrawablesWithIntrinsicBounds在TextView內容的上下左右添加圖片方便用戶的需要,但默認并沒有提供設置點擊這些圖片后響應操作的接口。本文介紹自己自定義的一個TextView達到此效果,主要功能為設置TextView各個方向圖片的響應。

首先讓我們看下效果


點擊最下面的圖片響應如上,執行結果為顯示“Bottom”的Toast,可以下載Demo代碼CompoundDrawablesTextViewDemo編譯運行。

?

1、引入公共庫

引入 TrineaAndroidCommon GoogleCode或(TrineaAndroidCommon Git)作為android項目的公共類,或是自己抽取其中的CompoundDrawablesTextView部分使用

?

2、在xml中配置

用現在的CompoundDrawablesTextView替換原來的TextView即可

<com.trinea.common.view.CompoundDrawablesTextViewandroid:id="@+id/textWithImage"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="3dp"/>

?

3、在java類中調用

主要是設置TextView的CompoundDrawables和DrawableClickListener

CompoundDrawablesTextView textWithImage = (CompoundDrawablesTextView)this.findViewById(R.id.textWithImage); textWithImage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image); textWithImage.setDrawableClickListener(new ImageClickListener());class ImageClickListener implements DrawableClickListener {@Overridepublic void onClick(DrawablePosition position) {switch (position) {case LEFT:// 左邊圖片被點擊的響應Toast.makeText(context, "left", Toast.LENGTH_SHORT).show();break;case RIGHT:// 右邊圖片被點擊的響應Toast.makeText(context, "right", Toast.LENGTH_SHORT).show();break;case BOTTOM:// 底部圖片被點擊的響應Toast.makeText(context, "bottom", Toast.LENGTH_SHORT).show();break;case TOP:// 上邊圖片被點擊的響應Toast.makeText(context, "top", Toast.LENGTH_SHORT).show();break;default:break;}} }

可以根據自己需要補充上面switch中的響應函數即可

?

?

4、其他設置

4.1 設置圖片可響應點擊區域允許的誤差

setLazy(int, int)表示設置Drawable可響應的點擊區域x和y方向允許的誤差,正數表示點擊范圍向外擴展,負數表示點擊范圍向內收縮

?

4.2 設置是否同時被點擊的Drawable都響應

setAllDrawableTouchedResponse(boolean),表示是否所有被touch的Drawable都響應事件,true表示都響應,false表示按照左上右下的順序響應第一個點擊范圍內的Drawable

注意:若點擊的位置同時在多個圖片的有效范圍內,響應順序為左上右下,設置 setAllDrawableTouchedResponse(boolean)為false后就按順序響應第一個,其他被點擊圖片的響應忽略。

?

4.3 設置是否始終響應OnClickListener

setAlwaysClick(boolean)表示是否始終響應OnClickListener,true表示響應Drawable后依然響應OnClickListener,false表示響應Drawable后不再響應OnClickListener。

轉載于:https://www.cnblogs.com/trinea/archive/2012/06/18/2557201.html

總結

以上是生活随笔為你收集整理的可以响应各个方向CompoundDrawables点击操作的TextView的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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