根据所选的选项动态添加图像

时间:2013-08-25 13:02:56

标签: java android android-imageview

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

<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用于根据屏幕更改视图大小。

例如,当我将它用于写信时,这就是看起来的样子:

enter image description here

对于该号码,如果用户选择5,则显示应为:

enter image description here

如果用户选择1,则显示应为:

enter image description here

为字母设置图像的代码是:

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

我如何完成数字图像?

最好是在没有图像的情况下使用空白布局,并根据数字在runtim中添加ImageView并使其居中?这样,图像以父视图布局为中心?

2 个答案:

答案 0 :(得分:1)

好吧我有个主意也许你可以尝试一下。 尝试使用GridView通过根据屏幕动态更改列号和行号来显示苹果数。 例如,如果gridView是GridView并且输入的数字是11,则可以执行此操作。

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

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

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

答案 1 :(得分:1)

layout_heightImageView固定高度

- 编辑 -

int dp = TheFixedSize;
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float px = dp * (metrics.densityDpi / 160f);
Imageview.setHeight(px);