Android drawable文件夹图片大小

时间:2014-07-19 18:06:38

标签: android android-studio android-drawable

我是Android的新手,我正在做一个宠物项目,以便我学习Android。基本上我想在屏幕上显示六个图像。我注意到了drawable文件夹,我在drawable-xhdpi文件夹中有256x256px的内容。在Android工作室的Nexus 5预览中看起来很棒,但在Nexus 7(2012版)中,图像非常小,Nexus 5和Nexus 7都使用了drawables-xhdpi文件夹。

这是我的代码:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageMars"
    android:id="@+id/imageJupiter"
    android:src="@drawable/jupiter"
    android:contentDescription="@string/content_desc_jupiter"
    android:layout_toRightOf="@+id/imageVenus"
    android:adjustViewBounds="true"/>

如何让Nexus 7上的图像看起来更大,但是对于nexus 5来说却没有那么大?

我希望应用程序在其他设备上看起来也不错,所以我不认为为图像设置固定大小(例如70dp x 70dp)可以正常工作

谢谢

2 个答案:

答案 0 :(得分:0)

Android中的最佳做法是在每个文件夹中提供正确大小的图像,让系统根据设备选择最佳图像。 Supporting Multiple Screens是必读的。

基本上发生的是系统将导航到最能满足其屏幕的文件夹,如果它需要的图像在那里,很棒;如果没有,它将导航到下一个最佳文件夹,依此类推。如果它不能使用最好的设备,它将使用你给的最好的,并尽量使它看起来尽可能好。有时这不是很好。它可以将图像拉伸或缩小为丑陋的状态。

同样,最好的办法是在每个文件夹中提供相同图像的多种尺寸,以获得所需的结果。

<小时/> 编辑(对评论的回应):

不要猜。在Eclipse / ADT中,我有

  • Nexus 4 @ 768x1280 - 正常xhdpi
  • Nexus 7(2012)@ 800x1280 - Large tvdpi

所以不管&#34;更大&#34;事实仍然是他们从不同的可绘制文件夹中提取资源。据说大多数应用程序都不需要tvdpi,因为它介于mdpi和hdpi之间,这些文件夹通常就足够了。也许添加tvdpi并查看它是否有所不同,并确保您已根据文件夹正确缩放图像。


修改

好吧,您遇到的行为是正常的 - 不幸的是我想 - 但我找到了 解决方案。我个人从来没有遇到过这种情况,因为我学到了更好的方法,可以利用更大屏幕上的额外区域来增加内容。

无论如何,好像你没有足够的drawable个文件夹,你需要另外一个可绘制的文件夹,或者三个,以及更多的图像 - 是的!

在我之前的编辑中,我提到过&#34; Normal&#34;和&#34;大&#34;它们在Eclipse ADT中出现的可绘制文件夹的修饰符。好吧,事实证明这些文件夹也是有效文件夹,而smalllargexlarge屏幕的某些设备会使用它们。

通过添加标题为res的另一个drawable-xlarge-xhdpi目录,我能够获得更大的图像;这是针对Nexus 10.我将你的jupiter文件放大到了512x512和......

Nexus 10 screenshot

注意:我读到这不是一个推荐的解决方案,但却无法在Android文档中的任何地方看到它发出警告。研究可能是必要的!


答案 1 :(得分:0)

您应该为不同的显示尺寸/分辨率提供不同的图像尺寸。那个drawable-100w等文件夹是什么。

如果您不想这样做,但仍希望调整图像大小以使用所有可用空间,则必须以编程方式调整ImageView元素的大小。