android 中的可绘制文本与左对齐

2023-12-09

I am new to custom view and didn't know much about canvas in android, I wanted to align a left drawable to right side of layout along with the text(whether multiline or not) of same textview as in this image enter image description here

在上图中,我想将 $ 图像与文本对齐($20.0 - $90.0 /小时),并且如果文本是多行并且我不想使用任何额外的布局,则必须位于中心。提前致谢

这是我的基本 xml,

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"">

        <TextView
            android:id="@+id/ad_post_tv_noDays"
            style="@style/textView"
            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
            style="@style/textView"
             android:layout_alignParentRight="true"
            android:id="@+id/ad_post_tv_wage"
            android:layout_marginLeft="5dp"
            android:text="$8 - $12/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>

I had tried to implement it with custom views, it works for small text but when the text got bigger,it gets weird, my code image is as follows,enter image description here


尝试这样的事情

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);
}

@Override
protected 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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 中的可绘制文本与左对齐 的相关文章

随机推荐

  • 使用 cntk 训练模型和 python

    我已经使用 CNTK 训练了一个模型 让我们调用 simple dnn 现在在测试阶段我不想在 Windows 上安装 CNTK 而是使用经过 Python 训练的模型 如何使用经过训练的模型 权重 来使用 python 进行测试 您可以使
  • Boost Log 清除日志文件

    我一直在尝试 C 的 Boost Log 库 我的问题是每次程序启动时 日志文件都会被清除 有没有附加选项之类的 这是我的代码的一部分 BOOST LOG INLINE GLOBAL LOGGER DEFAULT my logger src
  • 使用 VB 脚本对字符串和数字进行排序

    如何使用 VB 脚本对带有数值的字符串进行排序 以下是表中每一行的字符串 12 月 2 日测试 1 通过 测试 3 失败 测试 2 于 6 月 4 日通过 已验证 测试10通过 用户已接受 我想在排序后按以下顺序 自然顺序 12 月 2 日
  • Cellfun 与简单 Matlab 循环性能对比

    当我不久前在大学开始使用 matlab 时 如果我的主管看到任何不必要的 for 循环 他就会杀了我 他会要求将其交换为kron或任何可能的索引操作类型 后来 我试图尽可能避免 matlab 上的任何循环 寻找最黑暗的 matlab 编码方
  • 使用 matplotlib.tri.Triangulation 创建在 Matplotlib 的plot_trisurf 中使用的三角剖分

    我是一个尝试使用matplotlib tri Triangulation为 matplotlibs 生成三角形plot trisurf 我想指定三角形而不是让 Delaunay 三角剖分matplotlib tri Triangulatio
  • MySQL 选择特定列

    我是 PHP 新手 我想知道如何从一行中选择特定列 例如 如果我想显示 Joe Bugly 的名字 其中 ID 名字 姓氏和电子邮件都是列 Assuming that you don t want all columns that woul
  • PHP 将 15 分钟添加到时间值

    我有一个接收时间值的表单 selectedTime REQUEST time 时间格式如下 9 15 00 即上午 9 15 然后我需要添加 15 分钟并将其存储在一个单独的变量中 但我被难住了 我尝试使用 strtotime 但没有成功
  • 打开 Apple 地图进行导航并设置目的地名称

    我正在从 Google 的 Places API 获取位置数据 如下面使用的坐标 当从我的应用程序链接到 Apple 地图进行导航时 我当前正在使用 https maps apple com daddr latitude longitude
  • 如何将孙视图渲染到与第一个子视图相同的路由器出口中?

    这是对此的后续问题 Angular 2 辅助路由在 2 1 0 中如何工作 我也尝试过查看这个 但它并没有真正阐明这个问题 如何将子路由渲染到父级的路由出口 如果我有一条父路线 admin其中有一个
  • Php从关联数组中获取键[重复]

    这个问题在这里已经有答案了 我怎样才能从数组中只获取整个第一行 我使用 Laravel 例如当我说 request all 我收到 array 2 email gt email protected password gt adms Wh 我
  • StringBuilder 在 C# 内部如何工作?

    如何StringBuilder work 它有什么作用内部 它使用不安全的代码吗 为什么它这么快 与 操作员 当您使用 运算符构建字符串时 string s 01 s 02 s 03 s 04 然后 在第一次串联时 我们创建一个长度为 4
  • 打印出整个目录树

    我现在拥有的代码 import os Tree Tree os listdir Dir gt gt gt print Tree New Folder Textfile1 txt Textfile2 txt 这不会打印出子目录中的文件 新建文
  • 在运行时使用类型变量创建类型列表[重复]

    这个问题在这里已经有答案了 我试图简化在函数中创建多个变量的方法 这些变量针对不同类型和不同操作重复 最终我将迁移到可以处理多种类型的单个函数 但我是分阶段进行的 我希望能够创建其类型的对象列表而不是列表 而不必在各处复制 粘贴对象类型 我
  • Tcl 中是否有与 C stdlib.h 中的“string to X”函数等效的函数?

    有标准功能 例如atof and atoi in C s stdlib h用于将字符串转换为浮点数 整数 也可以执行相反的操作 Tcl 中是否有类似的功能 或者我是否需要编写自己的流程来执行这些任务 一切都是字符串在 Tcl 中 但是需要数
  • 如何将JFreeChart库添加到JDK?错误:包 org.jfree.chart 不存在

    在获得了一些其他语言的经验后 我开始使用 Java 对于所有这些 我一直在使用 Atom 代码编辑器 所以我已经使用 Java 进行管理 但最近我发现我需要使用外部库 JFreeChart 我使用 JDK 8 在 cmd Windows 上
  • 在 pandas 对象列上调用 `str.len` 时遇到问题

    我有一个 Pandas DataFrame 其中有一个名为的字符串列title我想将每一行的条目转换为该字符串的长度 所以 abcd 将被转换为4 等等 我正在这样做 result df title result df title str
  • SQL WHERE ID IN (id1, id2, ..., idn)

    我需要编写一个查询来检索大量 id 列表 我们确实支持许多后端 MySQL Firebird SQLServer Oracle PostgreSQL 因此我需要编写标准 SQL id 集的大小可能很大 查询将以编程方式生成 那么 最好的方法
  • Python re.sub 问题

    大家好 我不确定这是否可能 但我想在正则表达式替换中使用匹配的组来调用变量 a foo b bar text find a replacement for me a and b desired output find a replaceme
  • 在 SQL 中按分区分组或迭代

    有关 SQL 分区的两部分问题 在 T SQL 中 当您使用 PARTITION BY 时 除了 row number 之类的方法之外 是否还有一种方法可以为每个分区分配唯一的编号 例如 row number 会产生 Action Time
  • android 中的可绘制文本与左对齐

    I am new to custom view and didn t know much about canvas in android I wanted to align a left drawable to right side of