2016-01-13 205 views
0

我正在使用ContextCompat(v4支持库版本)以编程方式在我的代码中获取drawables。它在除了棉花糖以外的所有Android版本上工作正常。我的意思是图像不显示在屏幕上的机器人M.这里是我使用的代码:ContextCompat.getDrawable不能在棉花糖上工作

Drawable myDrawable = ContextCompat.getDrawable(mActivity, R.drawable.id); 
myDrawable.setBounds(0, 0, (int) (myDrawable.getIntrinsicWidth() * 0.6), (int) (myDrawable.getIntrinsicHeight() * 0.6)); 
ScaleDrawable sd = new ScaleDrawable(myDrawable, 0, -1, -1); 
mToggleButton.setCompoundDrawables(sd.getDrawable(), null, null, null); 
+0

你是什么意思,它不工作? –

+0

@Jared图像在调用'setCompoundDrawables'时为什么没有在屏幕上显示在Marshmallow – allstraws

+0

为什么你使用'sd.getDrawable()'而不是'sd'? – pskink

回答

0

我没有找到任何文件,但只有setProgressDrawable工作,当它被setLayoutParams之前调用。这段代码来自CursorAdapter。

这工作:

ProgressBar progressBar3 = (ProgressBar) view.findViewById(R.id.progressBar3); 
     if(numScoreValues == 4){ 
     progressBar3.setProgressDrawable(ContextCompat.getDrawable(context,R.drawable.progress_green)); 
     } 
     progressBar3.setMax(totalTargets); 
     progressBar3.setProgress(userResultArray[3]); 
     progressBar3.setLayoutParams(params); 

这没有奏效。进度条没有背景。

ProgressBar progressBar3 = (ProgressBar)    view.findViewById(R.id.progressBar3); 

     progressBar3.setMax(totalTargets); 
     progressBar3.setProgress(userResultArray[3]); 
     progressBar3.setLayoutParams(params); 
if(numScoreValues == 4){ 
       progressBar3.setProgressDrawable(ContextCompat.getDrawable(context,R.drawable.progress_green)); 
     }