我在Android开发方面绝对是新手,我发现在我的第一个应用程序上运行以下问题。
我的问题与将图像占用的空间更改为布局有关。
所以我遇到这样的情况:我没有将图像直接放入我的XML布局文件中,但我以编程方式将其编写到调用此方法的活动代码中:
ImageView difficultyContainerImageView1 = (ImageView) rootView.findViewById(R.id.difficultyContainer);
difficultyContainerImageView1.setImageDrawable(new BitmapDrawable(getResources(), ImgUtility.createRankingImg(context, 3)));
所以 ImgUtility.createRankingImg(context,3)会返回 Bitmap 对象,该对象已设置为我的布局的 ImgeView difficultyContainer 作为ID。
它工作正常,图像显示在我的布局中,这一个:
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:scaleType="fitXY" />
<TextView
android:id="@android:id/text1"
style="@style/pastaTitleTextStyle" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
style="@style/HeaderTextStyle"
android:text="Difficoltà:" />
<ImageView
android:id="@+id/difficultyContainer"
android:layout_width="fill_parent"
android:layout_height="55dp"
android:scaleType="fitXY" />
</LinearLayout>
</LinearLayout>
图像正确显示在 ImageView :
中<ImageView
android:id="@+id/difficultyContainer"
android:layout_width="fill_parent"
android:layout_height="55dp"
android:scaleType="fitXY" />
唯一的问题是以这种方式水平占据视图的所有空间,这是我获得的(图像是包含厨师帽的最后一个):
这应该取决于我使用 android:layout_width =“fill_parent”来说 ImageView id = difficultyContainer 必须水平占据其容器的所有空间(主 LinearLayout )。
所以我想知道如何为 ImageView 设置百分比宽度\高度。
指定百分比的最佳方法是什么,以便我的图片在我的应用中显示得更小?这样做的最佳解决方案是什么?
答案 0 :(得分:1)
您是否正在尝试询问如何以编程方式设置imageView的大小?
若是,请使用:
ImageView imageView = findViewById(R.id.difficultyContainer);
imageView.getLayoutParams().width = 120;
高度相同,只需用高度替换宽度。
这个值为&#39; 120&#39;在dp中,这意味着图像的大小将根据输出设备的屏幕大小进行调整,这意味着您不需要像在html / css中那样使用百分比
答案 1 :(得分:0)
只需在ImageView中添加填充
<ImageView
android:id="@+id/difficultyContainer"
android:layout_width="fill_parent"
android:layout_height="55dp"
android:padding="8dp"
android:scaleType="fitXY" />