我有以下布局,显示图像和文本字符串:
<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);
我如何完成数字图像?
最好是在没有图像的情况下使用空白布局,并根据数字在runtim中添加ImageView并使其居中?这样,图像以父视图布局为中心?
答案 0 :(得分:1)
好吧我有个主意也许你可以尝试一下。 尝试使用GridView通过根据屏幕动态更改列号和行号来显示苹果数。 例如,如果gridView是GridView并且输入的数字是11,则可以执行此操作。
gridView.setNumberOfColumns(5);
gridView.setNumberOfRows(3);
所以5x3可容纳15个元素,可轻松容纳11个。
然后将包含Apple的自定义视图扩展到列中。
答案 1 :(得分:1)
layout_height
为ImageView
固定高度
- 编辑 -
int dp = TheFixedSize;
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float px = dp * (metrics.densityDpi / 160f);
Imageview.setHeight(px);