我在550X257
文件夹中有drawable
的以下图片:
对于不同尺寸的屏幕,它看起来有所不同:
无论设备使用的是什么,我如何确保它填充父宽度。为了测试它我按比例增大了图像并将其放在不同的密度文件夹中,但是在更大的屏幕上图像更小。
我的XML看起来像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@drawable/bd" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_marginLeft="64dp"
android:layout_toRightOf="@+id/button1"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="46dp"
android:layout_marginTop="192dp"
android:text="Button" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_margin="0dp"
android:padding="0dp"
android:src="@drawable/test" />
</RelativeLayout>
答案 0 :(得分:1)
更改
android:layout_width="wrap_content"
致:
android:layout_width="match_parent"
适合您的ImageView。
答案 1 :(得分:1)
您有两个选择
首先将图像转换为不同的dpi设备(ldpi,mdpi,hdpi,xdpi)并将图像放入文件夹drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xdpi
上述方法可能不适合您
第二种方法是检测设备的大小,并以像素为单位设置图像的宽度和高度
通过此方法检测屏幕大小
Display display = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics dm= new DisplayMetrics();
display.getMetrics(dm);
Log.i("widthxheight",dm.widthPixels+"x"+dm.heightPixels;
现在我希望您可以使用widthPixels或heightPixels来确定图像的宽度,如下所示:int imgwidth=(int)(widthPixels*0.80);//80 percent of width
并以相同的比例计算高度:int imgheight=(imgwidth*originalimageheight)/originalimagewidth;
之后,您可以使用LayoutParameters
以编程方式设置图像的宽度高度