
我是自定义视图的新手,对android中的画布了解不多,
我想将左可绘制对象与该图像相同的textvIEw的文本(无论是否为多行)与布局的右侧对齐(如该图像
在上面的图像中,我想将$图像与文本对齐($20.0-$90.0 / hour),并且如果文本为多行并且我不想使用任何其他布局,则必须居中.提前致谢
这是我的基本xml,
<relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_gravity="center""> <TextVIEw androID:ID="@+ID/ad_post_tv_noDays" androID:text="20 days" androID:layout_wIDth="wrap_content" androID:layout_alignParentleft="true" androID:drawablepadding="5dp" androID:textcolor="@color/color60" androID:drawableleft="@drawable/icon_calender" androID:layout_gravity="left|center" androID:gravity="left|center" androID:layout_centerVertical="true" /> <TextVIEw androID:layout_alignParentRight="true" androID:ID="@+ID/ad_post_tv_wage" androID:layout_marginleft="5dp" androID:text=" - /hour" androID:textSize="10dp" androID:layout_toRightOf="@ID/ad_post_tv_noDays" androID:drawablepadding="5dp" androID:layout_wIDth="wrap_content" androID:textStyle="bold" androID:layout_gravity="right|center" androID:gravity="right|center" androID:drawableleft="@drawable/icon_dollar" /> </relativeLayout>我曾尝试用自定义视图实现它,它适用于小文本,但是当文本变大时,它变得怪异,我的代码图像如下,
解决方法:
尝试这样的事情
package vIEws;import androID.content.Context;import androID.content.res.Resources;import androID.graphics.Bitmap;import androID.graphics.BitmapFactory;import androID.graphics.Canvas;import androID.graphics.Paint;import androID.graphics.Rect;import androID.util.AttributeSet;import androID.Widget.TextVIEw;import com.upsilon.docta.R;public class MyTempVIEw extends TextVIEw { public MyTempVIEw(Context context, AttributeSet attrs) { super(context, attrs); }public MyTempVIEw(Context context) { super(context);}@OverrIDeprotected voID onDraw(Canvas canvas) { //ContextCompat.getcolor(mContext, R.color.back_text_color) Paint textPaint = getPaint(); Rect bounds = new Rect(); textPaint.getTextBounds(getText().toString(), 0, getText().length(), bounds); int textWIDth = bounds.wIDth(); Resources res = getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_close); canvas.drawBitmap(bitmap, 0, getHeight() / 2 - bitmap.getHeight() / 2, textPaint); canvas.translate(bitmap.getWIDth(), 0); super.onDraw(canvas);}} 总结 以上是内存溢出为你收集整理的在Android中与文本左可绘制对齐全部内容,希望文章能够帮你解决在Android中与文本左可绘制对齐所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)