2013-07-20 45 views
4

我试图在片段中更改android中ImageButton的源代码。从片段获取资源

我想使用Image.setImageResource()方法,但是我不能在片段中使用getResources()。有没有办法解决这个问题? getActivity()。getResources()不会返回任何不幸的结果。

我试过写了一个字符串,如“R.drawable”。 + {不同的图像名称},但我不能将该字符串转换为int。

这还能做什么?

我只是想改变一些imageButtons与源文件依赖于不同的事情。

回答

7

我得到这个工作在一个片段:

int imageresource = getResources().getIdentifier("@drawable/your_image", "drawable", getActivity().getPackageName());   
    image.setImageResource(imageresource); 
+0

生病尝试...谢谢:-) – AKTStudios

+0

此外,我们可以从XML使用资源。例如getActivity()。getResources()。getColor(R.color.rose) – Parthi

1

R.drawable.imagename是一个int。而setImageResource()采用int:

imageButton.setImageResource(R.drawable.imagename)

此外,这是奇怪的是,getActivity().getResources()将返回什么。如果你的Fragment被附加到一个Activity中,它应该返回一个Resources对象。

+0

嗯也许它只是没有返回我的图像,我会再试一次... – AKTStudios

+0

@AKTStudios'getActivity()。getResources()'应该工作,因为' getResources'需要活动上下文。发布您的实施。 – Raghunandan

+0

也许你应该看看我的答案,它适用于我 – Simon

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; 
}