解决TextView drawableRight左侧图片大小不可控的问题
2017-05-24 15:32
357 查看
通过代码来修改图片的大小:
Drawable rightDrawable= context.getResources().getDrawable(R.drawable.more); rightDrawable.setBounds(0, 0, drawable.getIntrinsicWidth() / 2, drawable.getIntrinsicHeight() / 2) tvMore.setCompoundDrawablesWithIntrinsicBounds(null,null,rightDrawable,null);
其他解决方法
自定义ImageTextView控件/** * Package Name:com.xes.jazhanghui.views ClassName: ImageTextView <br/> * Description: 解决TextView 图片大小不可控问题. <br/> * Date: 2017-2-21 下午4:52:45 <br/> * * @author lihuixin * @version */public class ImageTextView extends TextView { private Drawable mDrawable;//设置的图片private int mScaleWidth; // 图片的宽度private int mScaleHeight;// 图片的高度private int mPosition;// 图片的位置 1上2左3下4右public ImageTextView(Context context) { super(context); } public ImageTextView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } public ImageTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs); } public void init(Context context, AttributeSet attrs) { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ImageTextView); mDrawable = typedArray.getDrawable(R.styleable.ImageTextView_drawable); mScaleWidth = typedArray .getDimensionPixelOffset( R.styleable.ImageTextView_drawableWidth, DensityUtil.dip2px(20)); mScaleHeight = typedArray.getDimensionPixelOffset( R.styleable.ImageTextView_drawableHeight, DensityUtil.dip2px(20)); mPosition = typedArray.getInt(R.styleable.ImageTextView_position, 3); } @Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); if (mDrawable != null) { mDrawable.setBounds(0, 0, DensityUtil.dip2px(mScaleWidth), DensityUtil.dip2px(mScaleHeight)); } } @Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); switch (mPosition) { case 1: this.setCompoundDrawables(mDrawable, null, null, null); break; case 2: this.setCompoundDrawables(null, mDrawable, null, null); break; case 3: this.setCompoundDrawables(null, null, mDrawable, null); break; case 4: this.setCompoundDrawables(null, null, null, mDrawable); break; default: break; } } /** * 设置左侧图片并重绘 * * @param drawableLeft */public void setDrawableLeft(Drawable drawable) { this.mDrawable = drawable; invalidate(); } /** * 设置左侧图片并重绘 * * @param drawableLeftRes */public void setDrawableLeft(int drawableRes, Context context) { this.mDrawable = context.getResources().getDrawable(drawableRes); invalidate(); } }设置attrs.xml配置
<declare-styleable name="ImageTextView"> <attr name="drawable" format="reference"/> <attr name="drawableWidth" format="dimension"/> <attr name="drawableHeight" format="dimension"/> <attr name="position" format="integer"/> </declare-styleable>布局文件中使用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res/com.xes.jazhanghui.activity" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_block_inset_white_ltr_8" android:orientation="vertical" > <com.xes.jazhanghui.views.ImageTextView android:id="@+id/tv_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawablePadding="5dp" android:text="更多" android:textColor="@color/color_737373" android:textSize="12sp" app:drawable="@drawable/more" app:drawableHeight="4dp" app:drawableWidth="3dp" app:position="3" /> </RelativeLayout> </LinearLayout>
来源: http://www.jianshu.com/p/7d1c16e0b64b
来自为知笔记(Wiz)
相关文章推荐
- 解决View drawableLeft左侧图片大小不可控的问题
- TextView中设置drawableLeft、drawableRight时设置图片的大小方法
- android关于TextView的drawableLeft,drawableTop,drawableRight,drawableRight的drawable大小及位置问题
- 在代码中修改TextView的DrawableRight图片
- 解决Android当中GridView的Item子控件中有ImageView图片大小不一致问题,动态设置ImageView控件大小
- 在代码中修改TextView的DrawableRight图片
- 【菜鸟学安卓】- TextView 显示Html 二 图片大小的显示问题
- 解决安卓TextView高度和textSize大小不一致问题
- Android程序中代码动态设置Textview文字的大小解决px转dp的问题
- 解决Android当中GridView的Item子控件中有ImageView图片大小不一致问题
- 在代码中修改TextView的DrawableRight图片
- 在代码中修改TextView的DrawableRight图片
- android textView设置html,解决图片和文字不对齐的问题
- 在代码中修改TextView的DrawableRight图片
- 在代码中修改TextView的DrawableRight图片
- 自定义TextView实现设置drawable图片大小
- 解决Android ImageView用setImageDrawable方法图片缩小的问题
- 关于在TextView中设置DrawableLeft,DrawableRight等不显示的问题
- Android 自定义view-如何设置TextView drawableLeft 图片大小?
- 如何给TextView 中通过drawable放图片 修改图片大小