我的屏幕上有一个listView。如果设备是小屏幕(320 * 480),我希望它的适配器填充3项,其余4项。
我在适配器中这样做的方式:
public class MyAdapter extends BindableArrayAdapter<SOMETHING>
{
private static int MAX_DISPLAYED_ITEMS;
public MyAdapter(Context context)
{
super(context);
MyAdapter.MAX_DISPLAYED_ITEMS = context.getResources().getInteger(R.integer.list_size);
Log.e("Test", "" + MAX_DISPLAYED_ITEMS);
}
@Override
public int getCount()
{
return Math.min(MAX_DISPLAYED_ITEMS, super.getCount());
}
我在res/values-small
和res/values-normal
下有2个文件,其中一个有3个,另外4个是list_size的值,如下所示
<resources>
<integer name="list_size">3</integer>
</resources>
我希望在Galaxy Y(320 * 480)上看到3个项目,而我会看到4个项目。
任何想法如何解决这个问题将不胜感激。感谢。
答案 0 :(得分:1)
设备密度为165dpi
,使其成为mdpi
设备。该决议为320px x 480px
,因为其mdpi
意味着。该设备为320dp x 480dp
。
通过Google doc,您可以看到此设备为Normal
。
xlarge屏幕至少为960dp x 720dp
大屏幕至少640dp x 480dp
正常屏幕至少为470dp x 320dp
小屏幕至少为426dp x 320dp
对我来说,我更喜欢使用sw-xxx
(例如你需要检查值):
res/values => 3
res/values-sw330 => 4
答案 1 :(得分:0)
创建新的 .xml 文件时,请确保在可用限定符下选择屏幕尺寸。然后根据您的需要编辑信息,它应该可以工作。
我希望这有帮助!