我是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)可以正常工作
谢谢
答案 0 :(得分:0)
Android中的最佳做法是在每个文件夹中提供正确大小的图像,让系统根据设备选择最佳图像。 Supporting Multiple Screens是必读的。
基本上发生的是系统将导航到最能满足其屏幕的文件夹,如果它需要的图像在那里,很棒;如果没有,它将导航到下一个最佳文件夹,依此类推。如果它不能使用最好的设备,它将使用你给的最好的,并尽量使它看起来尽可能好。有时这不是很好。它可以将图像拉伸或缩小为丑陋的状态。
同样,最好的办法是在每个文件夹中提供相同图像的多种尺寸,以获得所需的结果。
<小时/> 编辑(对评论的回应):
不要猜。在Eclipse / ADT中,我有
所以不管&#34;更大&#34;事实仍然是他们从不同的可绘制文件夹中提取资源。据说大多数应用程序都不需要tvdpi,因为它介于mdpi和hdpi之间,这些文件夹通常就足够了。也许添加tvdpi并查看它是否有所不同,并确保您已根据文件夹正确缩放图像。
修改强>
好吧,您遇到的行为是正常的 - 不幸的是我想 - 但我找到了 解决方案。我个人从来没有遇到过这种情况,因为我学到了更好的方法,可以利用更大屏幕上的额外区域来增加内容。
无论如何,好像你没有足够的drawable
个文件夹,你需要另外一个可绘制的文件夹,或者三个,以及更多的图像 - 是的!
在我之前的编辑中,我提到过&#34; Normal&#34;和&#34;大&#34;它们在Eclipse ADT中出现的可绘制文件夹的修饰符。好吧,事实证明这些文件夹也是有效文件夹,而small
,large
或xlarge
屏幕的某些设备会使用它们。
通过添加标题为res
的另一个drawable-xlarge-xhdpi
目录,我能够获得更大的图像;这是针对Nexus 10.我将你的jupiter文件放大到了512x512和......
注意:我读到这不是一个推荐的解决方案,但却无法在Android文档中的任何地方看到它发出警告。研究可能是必要的!
答案 1 :(得分:0)
您应该为不同的显示尺寸/分辨率提供不同的图像尺寸。那个drawable-100w等文件夹是什么。
如果您不想这样做,但仍希望调整图像大小以使用所有可用空间,则必须以编程方式调整ImageView元素的大小。