【发布时间】:2015-04-02 17:38:56
【问题描述】:
现在我需要实现一个和html标签一样的功能,见下图:
首先,我设置drawableLeft,它显示如下:
这不是我想的。之后我创建了一个类'LiTextView'实现TextView,并像这样覆盖onDraw()方法:
@Override
protected void onDraw(Canvas canvas) {
Drawable[] drawables = getCompoundDrawables();
if (drawables != null) {
Drawable drawableLeft = drawables[0];
if (drawableLeft != null) {
canvas.save();
canvas.translate(10, 50);
drawableLeft.draw(canvas);
canvas.restore();
}
}
super.onDraw(canvas);
}
xml 文件如下:
<me.naiyu.android.textviewlidemo.widget.LiTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:drawableLeft="@drawable/circle_dot"
android:drawablePadding="10dp"
android:textColor="#000000"
android:textSize="18sp"
android:text="Displays text to the user and optionally allows them to edit it. A TextView is a complete text editor, however the basic class is configured to not allow editing"/>
它变成了这个(有两个圆圈):
如何实现图片一,我现在没有想法!
【问题讨论】:
-
我会使用内部带有 ImageView 和 TextView 的 RelativeLayout,以便按照您的意愿对齐。
-
我现在按照你说的实现它。但是我有一个问题,如果有很多行,如何将 ImageView 对齐到 TextView 的第一行?
-
我不太明白你的意思。
-
我需要圆圈对齐 TextView 第一行的中心。只需将 html 标签
-
你必须在 ImageView 上设置一些 android:layout_marginTop