我正在尝试在片段中更改android中的ImageButton源。
我想使用方法Image.setImageResource(),但是我不能在片段中使用getResources()。这有什么方法吗? getActivity()。getResources()不会丢失任何结果。
我尝试过写一个字符串,例如“R.drawable”。 + {不同的图像名称},但我无法将该字符串转换为int。
如何做到这一点?
我只是想根据不同的事情改变一些带有源文件的imageButtons。
答案 0 :(得分:7)
我让这个片段工作:
int imageresource = getResources().getIdentifier("@drawable/your_image", "drawable", getActivity().getPackageName());
image.setImageResource(imageresource);
答案 1 :(得分:1)
R.drawable.imagename
是一个int。 setImageResource()
采用int:
imageButton.setImageResource(R.drawable.imagename)
另外,奇怪getActivity().getResources()
什么都不返回。如果您的Fragment附加到Activity,则应该返回一个Resources对象。
答案 2 :(得分:0)
我们可以在onCreateView(...)方法中使用资源:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.layout_name, container, false);
int sizeView = rootView.getResources().getDimension(R.dimen.size_view));
return view;
}