1

我有以下显示图像和文本字符串的布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center" >

    <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="@dimen/number_icon"
        android:layout_height="@dimen/number_icon"
        android:scaleType="fitXY"
        android:layout_marginTop="@dimen/letter_icon_margin_top" />
    <Button
        android:id="@+id/btnNumber"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="5dp"
        android:layout_weight="3"
        android:text=""
        android:gravity="center"
        android:textSize="@dimen/word_size_text"
        android:textColor="#000000"
        android:textStyle="bold"
        android:background="@drawable/borderaction" />
    </LinearLayout>

ivIcon是根据用户输入显示图像。每个字母显示一个图像时效果很好。但是我如何修复上述布局,以便根据用户选择显示图像数量。

@dimen用于根据屏幕改变视图大小。

例如,这就是我将它用于字母时的样子:

在此处输入图像描述

对于数字,如果用户选择5显示应该是:

在此处输入图像描述

如果用户选择1显示应该是:

在此处输入图像描述

设置字母图像的代码是:

ivLetterIcon = (ImageView) findViewById(R.id.ivIcon);
ivLetterIcon.setImageResource(R.drawable.apple);

我将如何完成数字图像?

最好有一个没有图像的空白布局,并根据数量在运行时添加 ImageView 并使其居中?这样图像以父视图布局为中心?

4

2 回答 2

1

好吧,我有一个想法,也许你可以试试这个。尝试使用 GridView 通过根据屏幕动态更改列号和行号来显示苹果的数量。例如,如果 gridView 是 GridView 并且输入的数字是 11,您可以这样做。

gridView.setNumberOfColumns(5);
gridView.setNumberOfRows(3);

所以 5x3 可以容纳 15 个元素,可以轻松放入 11 个元素。

然后将包含 Apple 的自定义视图膨胀到列中。

于 2013-08-25T13:12:08.843 回答
1

为一个固定的layout_height高度ImageView

- 编辑 -

int dp = TheFixedSize;
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float px = dp * (metrics.densityDpi / 160f);
Imageview.setHeight(px);
于 2013-08-25T15:14:49.157 回答