从Android中的资源文件夹获取不同的整数值

时间:2015-04-30 09:39:46

标签: android android-adapter android-resources

我的屏幕上有一个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-smallres/values-normal下有2个文件,其中一个有3个,另外4个是list_size的值,如下所示

<resources>
    <integer name="list_size">3</integer>
</resources>

我希望在Galaxy Y(320 * 480)上看到3个项目,而我会看到4个项目。

任何想法如何解决这个问题将不胜感激。感谢。

2 个答案:

答案 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 文件时,请确保在可用限定符下选择屏幕尺寸。然后根据您的需要编辑信息,它应该可以工作。

我希望这有帮助!