根据屏幕方向引用不同的原始资源

时间:2015-07-13 19:20:39

标签: android

我想在我的dimens.xml文件中定义原始资源,就像我定义边距,填充不同的屏幕方向一样。

我试过这个:

  

<item name="my_res" type="raw" format="string">R.raw.test</item>

但这似乎并没有起作用。

当我尝试获取该资源的id时,它不正确:

    TypedValue out = new TypedValue();

    getResources().getValue(R.raw.my_res, out, true);
    int resId = out.resourceId;

任何建议如何

1 个答案:

答案 0 :(得分:0)

使用Activity.getResources().getConfiguration().orientation获取指示当前方向的ORIENTATION_PORTRAIT和ORIENTATION_LANDSCAPE值。基于此,获得适当的原始资源。

TypedValue out = new TypedValue();
int resId;
if(Activity.getResources().getConfiguration().orientation == 1) { //1 for Portrait and 2 for Landscape 
    getResources().getValue(R.raw.my_res, out, true);
    resId = out.resourceId;
} else {
    getResources().getValue(R.raw.my_res_alternate, out, true);
    resId = out.resourceId;
}

做任何必要的改变,但这是主要的想法。