【組合控制元件】android自定義控制元件之帶文字的ImageView
android自帶的ImageView控制元件是不能新增文字的,如果出現大量ImageView和TextView同時出現的佈局,可以組合定義一個控制元件,將ImageView和TextView組合成一個控制元件
如下圖所示:
public class ImageButtonWithText extends LinearLayout { public ImageView imageView; public TextView textView; public ImageButtonWithText(Context context,AttributeSet attrs) { super(context,attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ImageButtonWithText); /* * 在attrs.xml新增屬性: * <declare-styleable name="ImageButtonWithText"> <attr name="picture" format="reference"/> </declare-styleable> * */ int picture_id = a.getResourceId(R.styleable.ImageButtonWithText_picture,-1); /** * Recycle the TypedArray, to be re-used by a later caller. After calling * this function you must not ever touch the typed array again. */ a.recycle(); imageView = new ImageView(context, attrs); imageView.setPadding(10, 10, 10, 10); /** * Sets a drawable as the content of this ImageView. * This does Bitmap reading and decoding on the UI * thread, which can cause a latency hiccup. If that's a concern, * consider using setImageDrawable(android.graphics.drawable.Drawable) or * setImageBitmap(android.graphics.Bitmap) instead. * 直接在UI執行緒讀取和解碼Bitmap,可能會存在潛在的效能問題 * 可以考慮使用 setImageDrawable(android.graphics.drawable.Drawable) * 或者setImageBitmap(android.graphics.Bitmap) 代替 */ imageView.setImageResource(picture_id); textView =new TextView(context, attrs); /** * Sets the horizontal alignment of the text and the * vertical gravity that will be used when there is extra space * in the TextView beyond what is required for the text itself. */ //水平居中 textView.setGravity(android.view.Gravity.CENTER_HORIZONTAL); textView.setPadding(0, 0, 0, 0); setClickable(true); setFocusable(true); setOrientation(LinearLayout.VERTICAL); addView(imageView); addView(textView); } public void setText(int resId) { textView.setText(resId); } public void setText(CharSequence buttonText) { textView.setText(buttonText); } public void setTextColor(int color) { textView.setTextColor(color); }佈局檔案中這麼使用:
<com.uestcneon.chuji.changjianglife.share.ImageButtonWithText xmlns:custom="http://schemas.android.com/apk/res-auto" style="@style/hisCardTable" custom:picture="@mipmap/his_card_company" android:id="@+id/imgbtn_company" android:text="公司(1)" > </com.uestcneon.chuji.changjianglife.share.ImageButtonWithText>圖片將通過自定義的custom:picture傳遞給ImageView控制元件,文字將通過android:text傳遞給TextView
相關文章
- Android自定義控制元件之自定義組合控制元件Android控制元件
- Android自定義組合控制元件之自定義屬性Android控制元件
- Android自定義控制元件 帶文字提示的SeekBarAndroid控制元件
- Android自定義控制元件之自定義屬性Android控制元件
- 11-自定義組合控制元件以及使用控制元件
- Android:ImageView控制元件AndroidView控制元件
- Android自定義控制元件——自定義屬性Android控制元件
- Flutter 之 自定義控制元件Flutter控制元件
- android:建立自定義控制元件Android控制元件
- Android自定義控制元件之基本原理Android控制元件
- Android自定義控制元件系列之基礎篇Android控制元件
- Android自定義控制元件之自定義ViewGroup實現標籤雲Android控制元件View
- 【Android】自定義樹形控制元件Android控制元件
- C#自定義控制元件—文字顯示、文字設值C#控制元件
- Android自定義控制元件實現一個帶文字與數字的圓形進度條Android控制元件
- Android 控制元件架構與自定義控制元件詳解Android控制元件架構
- 自定義控制元件實踐-帶特效的索引欄控制元件特效索引
- (Android自定義控制元件)Android自定義狀態提示圖表Android控制元件
- android 自定義控制元件 自定義屬性詳細介紹Android控制元件
- C#自定義控制元件:如果定義控制元件的事件C#控制元件事件
- 自定義Switch控制元件控制元件
- 自定義控制元件ViewPager控制元件Viewpager
- 控制元件自定義位置控制元件
- 如何自定義控制元件控制元件
- 自定義控制元件之歌詞RCL控制元件控制元件
- Android 自定義輪播圖片控制元件Android控制元件
- Android自定義下拉重新整理控制元件Android控制元件
- Android圓形圖片--自定義控制元件Android控制元件
- android自定義開關控制元件-SlideSwitchAndroid控制元件IDE
- Android 自定義控制元件 ViewPager頭部指示器控制元件 ViewPagerBelowIndicatorAndroid控制元件ViewpagerIndicator
- WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)控制元件
- Android開發之自定義隨機驗證碼控制元件Android隨機控制元件
- 自定義的ValidationSummary控制元件控制元件
- 組合控制元件的佈局控制元件
- Android自定義控制元件系列之圓形進度條的實現Android控制元件
- iOS自定義控制元件:簡易下拉控制元件iOS控制元件
- iOS自定義控制元件 AlertViewiOS控制元件View
- iOS自定義控制元件 SegmentiOS控制元件