我正在处理一个应用程序,我已经提供了从ldpi到xhdpi的所有资源,但是有些平板电脑使用hdpi(或者在我正在测试的nexus 7的情况下使用tvdpi)所以当我在平板电脑上打开应用程序时一切都很小,我想强迫他们使用xhdpi资源我该怎么做?
我不想仅为平板电脑创建单独的文件,或者应用程序的大小会增加,xhdpi资源可以正常工作
在手机上一切正常显示,平板电脑是问题,因为它们为大屏幕采用小分辨率资产,所以实际尺寸以英寸(4厘米,用尺子测量)是正确的,但它们实际上看起来很小,使得整体设计不正确
通常,降尺度是最佳选择(与向上扩展相反).如果缩小图像时图像不会降低或丢失信息,请将2x版本的图像放在res/drawable- xhdpi文件夹中.Android会在较低密度的设备上适当缩放这些图像.
例如,如果你在res/drawable-xhdpi中放置一个64x64像素的jpg/png ,Android会在mdpi设备上显示为32x32像素,在hdpi设备上显示为48x48像素图像,在xhdpi设备上显示为64x64像素图像.
如果缩小图像会使它们变差(例如,图像中有1条像素线在缩小时会消失),那么唯一的选择是在drawable-mdpi,drawable-hdpi等中添加图像的变化.目录.
评论后更新:
您希望在较大的屏幕上显示较大的图像(而不是在较高密度的屏幕上).您可以通过仅将图像放在drawable-xhdpi文件夹中来执行此操作,但是请执行以下操作:
例如,您将在res/layout中使用显示其中一个图像的ImageView进行此布局:
RES /抽拉-xhdpi/one_of_my_images.png
RES /布局/ somelayout.xml
....
<ImageView
android:layout_height="@dimen/image_height"
android:layout_width="@dimen/image_width"
android:src="@drawable/one_of_my_images"
android:scaleType="fitCenter"
....
/>
Run Code Online (Sandbox Code Playgroud)
RES /值/ dimens.xml
....
<dimen name="image_height">100dip</dimen>
<dimen name="image_width">150dip</dimen>
....
Run Code Online (Sandbox Code Playgroud)
RES /值-大/ dimens.xml
....
<dimen name="image_height">150dip</dimen>
<dimen name="image_width">225dip</dimen>
....
Run Code Online (Sandbox Code Playgroud)
RES /值-XLARGE/dimens.xml
....
<dimen name="image_height">200dip</dimen>
<dimen name="image_width">300dip</dimen>
....
Run Code Online (Sandbox Code Playgroud)
如您所见,屏幕越大,图像越大(倾斜,因此以英寸为单位).你可以在res/values-xlarge-hdpi,res/values-xlarge-xhdpi等中的dimens.xml中试验image_height和image_width的不同值,看看哪个看起来最好.
评论后更新2:
如果你想要自己的"自定义"加载适当资源的方案,请将它们
设为id res/drawable-nodpi:例如res/drawable -nodpi/one_of_my_images_normal.png res/drawable-nodpi/one_of_my_images_large.png res /可绘制-nodpi/one_of_my_images_xlarge.png
然后放入适当的可绘制目录(res/drawable /,res/drawable-large,/ res/drawable-sw360dp /等,无论你能想出什么)一个xml文件,间接引用nodpi目录中的正确资源:例如
RES /抽拉-XLARGE-MDPI/my_images.xml
<resources>
....
<item type="drawable" name="one_of_my_images">@drawable/one_of_my_images_large</item>
....
</resources>
Run Code Online (Sandbox Code Playgroud)
这意味着对于超大型mdpi屏幕,Android将从drawable-nodpi目录加载'one_of_my_image_large.png'.
归档时间: |
|
查看次数: |
5579 次 |
最近记录: |