2014-01-18 201 views
1

解决我有什么在我的项目图像尺寸是绘制文件夹中,我已经放在我需要调整一些人这样做,我放在值文件夹中的所有可绘制:针对不同屏幕尺寸和

值 - 正常-xhdpi 值正常-MDPI ...

所有都在xhdpi必须由六十零分之八十〇= 1.333 使得我得到同样显示为两个设备被划分的值...

这是为什么呢?当我将它除以2时,我会在mdpi设备上看到小按钮;

当我保持相同的尺寸时,我在mdpi设备上获得很大的按钮;

实施例: 中的值 - 正常MDPI:

<!-- In the about the progragm activity the buttons --> 
    <dimen name="aboutproductimgwidth">73.5dp</dimen> 
    <dimen name="aboutproductimgheight">73.5dp</dimen> 

    <!-- the logo in the animation activity --> 
    <dimen name="logoimgwidth">162dp</dimen> 
    <dimen name="logoimgheight">162dp</dimen> 

中的值 - 正常xhdpi:

<!-- In the about the progragm activity the buttons --> 
    <dimen name="aboutproductimgwidth">98dp</dimen> 
    <dimen name="aboutproductimgheight">98dp</dimen> 

    <!-- the logo in the animation activity --> 
    <dimen name="logoimgwidth">216dp</dimen> 
    <dimen name="logoimgheight">216dp</dimen> 

当我放置这些值我已经得到了完全相同的显示在这两个设备上.. 这就是我需要的。

EDIT1 即使我做到了以另一种方式,那就是通过放置的160像素的图像中绘制正常-xhdpi夹,并在绘制正常-MDPI文件夹中另一个与80px我有两种设备上的不同显示;在mdpi设备上,我有非常大的按钮,在xhdpi设备上我有一个很好的显示为什么?!虽然我做了他们所说的我把xhdpi的图像分成了2;

EDIT2 对不起,我放了一些照片,但不能让他们在线太多的时间..但我有我的显示器: 有一个设备的按钮下的文本和文本上面的扣子BECAUSE按钮太大,在其他设备,我得到两个文本上面的按钮,因为按钮只是大,因为我需要它们..虽然我用于第一个设备按钮80PX,因为它是一个MDPI设备和在第二个160 PX因为它的XHDPI

+0

请勿使用十进制值。用73dp替换73.5dp。实际上没有半像素这样的东西。如果你真的想保证安全,所有的维度都可以被2除尽,或者甚至可以是4.这就是我所做的,尽管我知道这不是必需的。 –

+0

好的,谢谢你会这么做:) –

+0

此外,我甚至不知道你为什么使用值文件夹。调整大小应该在可绘制文件夹中进行。这是我不知道的一些新的Android最佳实践吗? –

回答

1

如果你做得正确,那么drawables-mdpi中的图像应该是xhdpi中图像大小的1/2。

你在屏幕上看到的是典型的mdpi设备是320像素,而典型的xhdpi是720像素。因此,如果您制作了两个按钮,每个屏幕尺寸为1/2,则xhdpi按钮应为360px。在“过程”之后,意味着在mdpi中有半个180px的按钮。但在mdpi屏幕上2个按钮将是360px,并不适合。为了让他们适应你需要减少他们30像素,或约13。33%

听起来像您正在查看的屏幕可能不是典型的屏幕,但问题的根源在于您正在调整drawables和values文件夹中的图像大小。你需要重新设计你的方法来处理不同的屏幕密度 - 选择一个或另一个,但可能不会同时使用,除非你有一个非常不寻常的用例。

+0

不,我没有同时在值文件夹和drawables文件夹中调整它们的大小;首先我尝试了第一个,当它没有工作时,我尝试了其他..是的,这是在mdpi上发生的事情按钮不适合,我只是想知道为什么,但是当我在hdpi和60放置一个160像素px在mdpi中我得到了所需的结果,所以我需要我的刻度数是80/60,即80dp = 160px(xhdpi屏幕)和60dp = 60px(mdpi屏幕),这是正常的吗? –

+0

您是否在xhdpi文件夹中放置了一张160像素的图像?然后在mdpi文件夹中的60px图像?正如你的评论?您正在使用值,而dp's - dimen会调整160至160像素的mdpi屏幕,并在xhdpi屏幕上调整160至320像素的值。通常情况下,dimen's用于不可绘制(如文本)或库存小部件(如“按钮”)。所以你要做的是调整drawable中的图像大小,然后用dp来进行另一次调整。将一个图像放在名为“drawables”的文件夹中,然后使用维度,或创建两个图像并停止使用维度。 – Jim

+0

是的,这就是我所做的我将图像放在一个名为drawables的文件夹中,并且我称之为dimens而不创建drawable-normal ..文件夹;但按钮的大小为160px为xhdpi和60px为mdpi,以便它们适合我想要它们。 –

0

您在为不同的可绘制文件夹设置正确的图像dpi时遇到问题。如果您想自动生成所有需要尺寸的图像,请使用http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

在这里您可以上传图片或使用文本/剪贴画,它会为您提供一个包含所有dpi图像的zip文件。

+0

谢谢你试过,但同样的问题..可能是这个设备是一个mdpi,但它需要它的大小从HDI或什么东西或可能是什么问题,因为我的设备之间有不同的显示,这是正常的xhdpi和正常的模拟器-mdpi –

+0

其实我很困惑你想说什么。您将160px图像放在xdpi和80px图像中的mdpi设备中。你没有得到正确的比例的图像? –

+0

确切地说,我没有在两个设备上显示相同的显示。 –

0

您需要在AndroidManifest.xml中为不同设备大小添加设置。 你可以看到设置here