我使用imageView
来显示活动图片。此图像大小不应根据设备屏幕而改变。但这不起作用。我想为每个设备使用图像的实际大小。以下是我的尝试。
<?xml version="1.0" encoding="utf-8"?>
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/circle"
android:id="@+id/imageView"
android:scaleType="center"/>
</RelativeLayout>
如何在不在每个设备屏幕上缩放的情况下使用相同的图像大小? 有任何想法。
谢谢。
答案 0 :(得分:0)
使用英寸而不是像素大小
例如android:layout_width=".5in"
<ImageView
android:layout_width="1in"
android:layout_height="1in"
android:src="@drawable/circle"
android:id="@+id/imageView"
android:scaleType="center"/>
https://developer.android.com/guide/practices/screens_support.html
答案 1 :(得分:0)
您必须为每个屏幕尺寸设计布局,或者您应该在不同的角钱文件夹中声明您的尺寸而不是wrap_content,因为它会根据屏幕密度缩放图像,
您必须使用维度创建的值文件夹是:
values-hdpi/dimens.xml------for hd handsets
values-xhdpi/dimens.xml-----for 5" screens xHD
values-xxhdpi/dimens.xml----for nexus 5X
values-xxxhdpi/dimens.xml----for nexus 6 and 6P devices
values-sw720dp/dimens.xml-----for 9" tablets
values-sw800dp-hdpi/dimens.xml--------for 10" tablets
values-sw600dp/dimens.xml------for 7" tablets
答案 2 :(得分:0)
在dp
中使用修正宽度和高度。
DP是dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。在定义应用程序的UI时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示UI。
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/circle"
android:id="@+id/imageView"
android:scaleType="center"/>
有关DP,SP,px的详细信息。请检查this
答案 3 :(得分:0)
为此,您必须为ImageView定义静态固定高度和宽度,然后使用以下属性: -
imgview.setScaleType(ScaleType.FIT_XY);
答案 4 :(得分:0)
只需使用photoshop或gimp等软件检查jour图像的实际尺寸,然后以这种方式在imageview中设置实际宽度和高度(例如:50px x 40px):
<ImageView
android:layout_width="50px"
android:layout_height="40px"
android:src="@drawable/circle"
android:id="@+id/imageView"
android:scaleType="center"/>
答案 5 :(得分:0)
就这样做!!高度是固定的,所以你需要提供一个高度值,宽度必须是match_parent。它对我来说非常好。
<ImageView
android:id="@+id/img_saving_image"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_cross"
android:scaleType="fitCenter"
or
android:scaleType="fitXY"
/>
答案 6 :(得分:0)
将图片放入drawable
或drawable-nodpi
。
Android不会缩放您的图片大小。您的代码无需更改。