在Android中与文本左可绘制对齐

在Android中与文本左可绘制对齐,第1张

概述我是自定义视图的新手,对android中的画布了解不多,我想将左可绘制对象与该图像相同的textview的文本(无论是否为多行)与布局的右侧对齐(如该图像所示)在上面的图像中,我想将$图像与文本对齐($20.0-$90.0/hour),并且如果文本为多行并且我不想使用任何其他布局,则必须居中.提前致

我是自定义视图的新手,对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中与文本左可绘制对齐所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1094340.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存