我正在使用ContextCompat(v4支持库版本)以编程方式在我的代码中获取drawable。除了Marshmallow之外,它在所有Android版本上运行良好。我的意思是图像没有显示在android M的屏幕上。这是我正在使用的代码:
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)
我没有找到任何文档,但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));
}