注意我在我的问题描述中引用了一些评论,但评论在代码容器之外,您必须向右滚动才能看到评论。
所以,我试图从 R.drawable 获得一个可绘制的(图像),但遇到了一些问题。我从尝试 1 开始(检查代码注释)并得到一个所有边界 = 0 的图像。但后来我在这里读到 getDrawable() 可能会返回图像的错误缩放,所以我按照通知并尝试了尝试 2(再次检查代码注释),但在这种情况下,drawable 为空。
这是代码:
private void setCurrentImage(){
TextView text = (TextView)profileView.findViewById(R.id.profile_image);
//mImage = "flower";
int id = R.drawable.flower;
if(mImage.equals("flower"))
id = R.drawable.flower;
if(mImage.equals("event_splash"))
id = R.drawable.event_splash;
if(mImage.equals("football"))
id = R.drawable.football;
if(mImage.equals("foxhead"))
id = R.drawable.foxhead;
if(mImage.equals("computer"))
id = R.drawable.computer;
//Drawable image = getResources().getDrawable(R.drawable.foxhead); //attempt 1
TypedArray attr = getActivity().obtainStyledAttributes(new int[]{id}); //attempt 2
Drawable image = attr.getDrawable(0); //attempt 2
Log.d("bounds", image.getBounds().toString());
text.setCompoundDrawables(image, null, null, null);
}
正如您在注释行 mImage = "flower" 上看到的那样,我尝试 100% 确定 mImage 是有效的,但仍然无法正常工作。