我遇到越来越多具有不规则布局的Android设备,尤其是在HDPI部分。
问题在于,即使我只在xml布局中使用DIP值,我的更复杂的布局也无法正确缩放。动画特别成问题,因为我在TransformAnimation
代码中使用了浮点值。
例如,我将拥有一台带有3.7英寸屏幕的240dpi手机,具有Android标准分辨率。我可以为这个设备制作HDPI和大型布局,让它们完美地适应所有设计和美学。
然后我有一个4.2英寸的手机,但它的垂直分辨率仍低于XHDPI或XLARGE。如果您询问设备的DPI是什么,它也会报告240dpi。不幸的是,由于实际上不同的宽高比,实际上不同的屏幕尺寸和实际上不同的分辨率,我的布局不能正确缩放。也没有办法制作一个单独的布局文件夹,因为设备认为它是一个布局大和hdpi,因为它只是报错了。 (两个EVO,其他几个“长”手机)阅读Android文档似乎你可以使用layout-long-large
和其他一些组合,但手机本身仍然认为它只是布局大。 long
限定符适用于报告自身相关信息的设备。
人们如何使用Android框架解决这个问题,而无需在代码中执行此操作。对我来说,这将是一项非常繁琐的工作,如果硬件不正确地报告有关自身的所有信息,我对如何动态地做出这样的疑问。
洞察力表示赞赏。
答案 0 :(得分:1)
您的目标框架是什么?除非API目标是9或更高,否则设备不会将自己报告为xhdpi。
答案 1 :(得分:0)
解决此问题的一种方法是,每次应用程序启动时,它都会将其useragent发送到服务器。然后,服务器确定要使用的正确图像,并将该信息发送到使用它来显示该图像的客户端。其他移动平台就是这种情况,虽然Android解决了它,但你似乎遇到了问题。把它拿出来。
您还考虑使用9路径图像吗?
答案 2 :(得分:0)
我对这个问题的解决方案是越来越依赖于RelativeLayout的定位。