我的dimens.xml中有一个值,定义如下:
<dimen name="input_text_width">250dp</dimen>
我想用它来动态调整TextView的宽度,如下所示:
tv.setWidth(activity.getResources().getInteger(R.dimen.input_text_width));
资源存在(在R.java中检查)。我跑了&#34;清洁&#34;在我的项目不止一次。为什么我一直得到这个例外?
android.content.res.Resources$NotFoundException: Resource ID #0x7f050012 type #0x5 is not valid
答案 0 :(得分:2)
我是从Android Docs
取得的<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textview_height">25dp</dimen>
<dimen name="textview_width">150dp</dimen>
<dimen name="ball_radius">30dp</dimen>
<dimen name="font_size">16sp</dimen>
</resources>
在代码中
//Retreive dimension
Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);
在你的xml中
<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>
我希望这会有所帮助!
答案 1 :(得分:0)
您必须获取尺寸像素...
int size = activity.getResources().getDimensionPixelSize(R.dimen.input_text_width);
textView.setWidth(size);
答案 2 :(得分:0)
可能是因为你使用:
activity.getResources().getInteger(R.dimen.input_text_width)
而不是:
activity.getResources().getDimension(R.dimen.input_text_width);