您好我试图在ImageView
中设置图像,但在设置图像后,它在不同的Android设备上显示的大小不同。
Sony Z Experia 4.3
三星Y Dous 2.3它将整个图像覆盖到屏幕宽度
这是布局
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="5dip"
android:scaleType="fitStart" />
我怎样才能使它看起来像Sony Z Xperia一样。有什么想法吗?
提前致谢
答案 0 :(得分:2)
在android中你有选择权 华电国际, MDPI, xdpi等。
文件夹,您必须根据设备分辨率创建不同的图像,并在确认设备分辨率和密度类别后将图像放在那里。
有关更多参考的原因,您可以看到here
这里我解释一些图表可能对你有所帮助。
Low density Small screens QVGA 240x320 (120dpi):
layout-small-ldpi (240x320)
layout-small-land-ldpi (320x240)
Low density Normal screens WVGA400 240x400 (x432) (120dpi):
layout-ldpi (240 x 400 )
layout-land-ldpi (400 x 240 )
Medium density Normal screens HVGA 320x480 (160dpi):
layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )
Medium density Large screens HVGA 320x480 (160dpi):
layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)
Galaxy Tab ( 240 dpi ):
layout-large (600 x 1024)
layout-large-land (1024 x 600)
High density Normal screens WVGA800 480x800 (x854) (240 dpi):
layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)
Xoom (medium density large but 1280x800 res) (160 dpi):
layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)
答案 1 :(得分:1)
有两种方法可以解决这个问题。
<ImageView
android:id="@+id/logo"
android:layout_width="200dp"
android:layout_height="75dp"
android:padding="5dip"
android:scaleType="fitStart" />
当然,您可以使用单个图像(忽略#1)并使用#2将其拉伸到合适的大小,但之后您可能会将图像缩放10倍,并且看起来非常拉伸。
答案 2 :(得分:0)
您需要针对不同密度设备的不同图像。索尼Z具有更高的密度,这就是为什么它看起来更小。xxdpi,xdpi,hdpi, mdpi and ldpi
文件夹用于此事。尝试使用this工具转换不同设备的图片。我知道这个工具仅用于图标。它生成不同密度的图标。但是你可以尝试一下。
答案 3 :(得分:0)
尝试使用此代码,并以屏幕百分比的形式提供高度和宽度
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
int widthScreen = metrics.widthPixels;
int heightScreen = metrics.heightPixels;
ImageView logo=findviewById(R.id.logo);
logo.getLayoutParams().height = (int) (heightScreen * 0.10);//it set the height of image 10% of your screen
logo.getLayoutParams().width = (int) (widthScreen * 0.10);