与GridView的
仍然有问题经过两年的Android开发的我还没有100%的把握什么资源,我需要提供使不同尺寸和分辨率的设备我的GridView的工作。与GridView的
我还在学习,比如我最近发现,你不有在所有屏幕尺寸提供每绘制 - 如果你把东西xhdpi那么Android是足够聪明的调整是在飞行中最的时间 - 但有几个怪癖。例如,如果我尝试使用仅在GridView
中的mdpi设备上的drawable-xhdpi bin中定义的drawable,则该drawable将在视觉上正确调整大小,但其周围的空白不会 - 这仍然是原始大小。最初我通过为GridView
和相关的适配器视图的各个方面强制定义尺寸来解决这个问题,但是它周围有大量的代码气味,所以我手动调整了drawables的大小,将它们放在它们各自的bin中(drawable-mdpi,绘制,华电国际和绘制-xhdpi)和去除图像大小等
的所有强制所以我现在有:
<GridView
android:id="@id/home_image_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="100dp"
android:gravity="center"
android:listSelector="#00000000"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
>
</GridView>
,并为每个项目的布局是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="0dip"
android:gravity="center"
android:orientation="vertical"
android:padding="0dip">
<ImageView
android:id="@id/home_button_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@id/home_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/default_text_colour"
android:textSize="@dimen/home_button_text"
/>
</LinearLayout>
所以非常好...
的应用程序,我目前正在对我已经基本完成,并已做不同设备上的一些测试 - 它看起来正常的屏幕尺寸xhdpi,华电国际& MDPI设备良好。然后我伸出我的测试到其他设备 - 我测试上的HTC Flyer的是大屏幕尺寸,MDPI - 和GridView控件现在看起来垃圾 - 这是正确拿起MDPI图像,这是微小的。
做一些阅读四周,我发现GridView
tutorialGridView
tutorial,它说把所有的可绘制在“绘制”本,所以我遵循了这一建议,并再次一切都显得垃圾 - 仔细检查(并具有实际通读示例代码),他们似乎在手工设置每个图像的尺寸在GridView
- 这是我一直在做,开始了,而这意味着我将不得不手动设置的图像尺寸为每个排列的设备。
So..I'm在想,如果我在这里已经错过了一次机会 - 我应该把我在我的文件夹绘制坚持的图像,并手动强制尺寸为每purmutation的第一种方法?我是否应该为所有屏幕大小和分辨率的排列绘制一组新的图像?
我如何能保证无论我做什么,它要好看我没有测试它的设备上?
无论哪种方式,感觉就像我做错了 - 但我不能工作了如何正确地做到这一点不麻烦的负荷。谁能帮忙?
我不知道你所说的“强制每一个排列的大小”的意思,但你可以把正确的尺寸可绘制在下列文件夹:
- 绘制,MDPI
- 绘制-large- MDPI
每个设备会从相应的文件夹中选择合适的可绘,你可以适用于mdpi分离器件正常和高画质图像。
那不是解决问题了吗?
P.S:drawable
文件夹仅用于XML可绘制或不依赖于设备密度的照片,而不是用于UI的图像。这些将按照每个分辨率和密度正确缩放。
通过迫使大小 - 我的意思是不必手动制定出正确的尺寸图像。我可以做到这一点,但这并不能很好地扩展 - 我不得不为每个屏幕尺寸和分辨率的排列做这个。如果您在我发布的链接中看到,Android开发人员指南中提到“将图像文件保存到项目的res/drawable /目录中。” – Martyn 2012-03-23 14:21:00
不,你发布的链接并不是这么说的,它实际上是在说它的含义。无论哪种方式,您都应该将您的**图像**放入相应的'drawable-Xdpi'文件夹中,并为每个密度提供特定的可绘图。如果你有XML drawable,那么把它们放在'drawable'文件夹中。你可以在每个'drawable-Xdpi'文件夹中放入一个XML文件的副本,但这不会起任何作用。无论如何,你有没有尝试过我建议的? – 2012-03-23 14:31:16
我很抱歉 - 你是对的,我链接到错误的教程 - 链接更正。我确信你的建议可行,但我要求的是一个可以扩展到其他设备的答案,这些设备我没有,或者还没有存在(小屏幕xhdpi设备?) – Martyn 2012-03-23 14:35:31