0

我正在尝试显示用户在图像上输入的值,有 4 个版本的图像(ldpi、mdpi、hdpi 和 xhdpi)。我想将 textViews 放置在调整为正确屏幕尺寸的“固定”位置。

有没有人对我如何实现这一目标提出一些建议?

这是我正在尝试做的事情的草图。

http://dl.dropbox.com/u/251053/stackoverflow.png

编辑

感谢您的快速回复。上传了一张新图片,我猜这对于相对布局是不可能的?

http://dl.dropbox.com/u/251053/stackoverflow1.png

4

3 回答 3

1

查看“RelativeLayout”文档:http: //developer.android.com/reference/android/widget/RelativeLayout.html

您将能够将您的 textView 放在您的 ImageView 周围。

于 2012-05-21T15:17:11.217 回答
0

我认为最好的方法是通过扩展 View 类来创建自定义视图。它并不像看起来那么复杂。在这里,您可以找到有关自定义 UI 组件的更多信息。

主要思想是重写 onDraw(Canvas canvas) 和 onMeasure(int widthMeasureSpec, int heightMeasureSpec) 方法。在 onMeasure 中,您应该返回视图的尺寸,还可以计算矩形的大小和角度以及要绘制的文本的大小。或者您可以实现自定义 resize() 方法,该方法将在您从活动中查看并进行文本和图像计算时显式调用。

当您知道所有测量值时,您可以在 onDraw(Canvas canvas) 方法中定位和绘制图像和文本。

@Override
    protected void onDraw(Canvas canvas) {

    myImageDrawable.setBounds(0,0,50,50);
    myImageDrawable.draw(canvas);

    canvas.drawText(myText, 10, 10, myTextPaint);
}

您可以在此处找到有关 Canvas 类的更多信息。您也可以使用StaticLayout来测量文本。

于 2012-05-22T11:52:59.493 回答
0

我认为解决这个问题的最好方法是创建一个自定义布局,期望 ImageView 作为它的第一个孩子。

所有其他孩子都将是 TextView,您可以:

  • 相对于 ImageView 位置的位置
  • 位置与您的父自定义布局的高度/宽度成比例,该布局与您的 ImageView 的高度/宽度相匹配

子 TextView 的左/上位置信息可以通过适合您需要的自定义 LayoutParams 类给出。

于 2012-05-21T20:55:00.120 回答