注意我在问题描述中引用了一些注释但是注释不在代码容器中,您必须向右滚动才能看到注释。
所以,我试图从R.drawable中获得一个可绘制的(图像)但是已经碰到了一些问题。我从尝试1(检查代码注释)开始,得到一个所有边界= 0的图像。但后来我读了here,getDrawable()可能会返回错误的图像缩放,所以我按照通知尝试了2(再次检查代码注释),但在这种情况下,drawable为null。
以下是代码:
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是有效的,但仍无法正常工作。
答案 0 :(得分:0)
:
public void setCompoundDrawables(Drawable left,Drawable top, 可绘制的右侧,可绘制的底部)
将Drawables(如果有)设置为显示在左侧 在文本的上方,右侧和下方。如果不这样做,请使用null 想要一个Drawable那里。 Drawables必须已经有了 setBounds(Rect)调用。
因此,一旦拉动了drawable,就必须在其上调用setBounds来指定希望图像显示的边界