目前我正在尝试为Android设备开发移动应用程序(使用Appcelerator)。
有很多Android设备有不同的屏幕分辨率。所以我基本上希望应用程序在每个Android设备上看起来都一样。
假设我在屏幕中央有一个背景图像。这是(以像素为单位)550x300。
我只是尝试将图像视图的宽度和高度设置为 dips (与密度无关的像素)。所以在我的情况下:332dp
x 226dp
。
我首先在HTC One X
上对此进行了测试。在那里,图像很好地居中,我在屏幕边缘的左侧和右侧留下了一个小空间。
然后我在较旧的设备HTC Desire Z
上测试了它。在那里,图像宽度略大于屏幕的实际宽度。 (示例屏幕。蓝色方块表示图像)
这意味着将宽度和高度设置为 dp 对于图像来说不是一个好选择。
设置图像宽度和高度以便在两部手机上看起来都相同的好方法。也就是说,它们在图像的其他边缘都有一个小的空白区域(就像我现在在HTC One X中那样)??
有关此问题的任何建议吗?
修改
感谢您的信息到目前为止。你们中的一些人发布了资源等链接并提出了一些建议。我会在接下来的几天内尝试解决这些问题,所以我可能需要几天才能接受答案。与此同时,欢迎任何想法建议。
答案 0 :(得分:1)
我建议使用适合的尺码。
在目标c中它看起来有点像这样......不是一个Android程序员,但这可能会有所帮助。
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;
因此,如果您可以找到获取帧大小的方法,那么您可以将图像设置为视图所在的任何方式。
如果你不想让它占据整个屏幕而只是侧面,那么可能会有Android的自动调整功能,这样你的图像将灵活随你的框架,这将根据手机的大小而有所不同。
答案 1 :(得分:1)
使用各种可绘制文件夹,即drawable,drawable-large,drawable-xlarge,以各种尺寸存储背景图像资源。有关详细信息,请查看http://developer.android.com/guide/topics/resources/providing-resources.html。
另请参阅Android: Scale a Drawable or background image?以获取有用的信息。
答案 2 :(得分:0)
我认为问题不在于图像更宽,而且HTC Desire Z上手机的屏幕宽度更小。
我认为图像在所有设备上看起来相同的最佳方式是以编程方式设置宽度/高度
但我认为这并不重要,因为你会遇到更多复杂的问题,需要进一步开发多个设备。两人看起来都很好IMO。
答案 3 :(得分:0)
我会将您的android:layout_width
设置为fill_parent
,然后添加android:layout_marginLeft
和android:layout_marginRight
。您还可以设置顶部和底部的边距,但是根据您的屏幕截图似乎不是问题。
作为一般规则,尽量避免为小部件设置固定的高度和宽度。这是处理不同屏幕尺寸的绝佳参考:
http://developer.android.com/guide/practices/screens_support.html
答案 4 :(得分:0)
所以我基本上希望应用在每个Android设备上看起来都一样。
不,不。你认为你这样做,但你真的没有。这就像试图在4x6,5x7和8x10帧中拟合一张照片 - 这是必须给予的。你有小型手机,中型手机,大型手机,7英寸平板电脑,10英寸平板电脑 - 这些不是相同的体验,你只需要对设计有一定的宽容就可以使它工作。如果您只想在图像外部使用特定数量的空间,只需为您的ImageView提供DP单位的特定余量,例如:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dip"
//...
/>
您应该努力使体验相同(尽管强烈建议使用不同的平板电脑布局),但您不能指望它在所有屏幕尺寸和密度上看起来都相同。