在Android Studio上,它一直说不推荐setBackgroundDrawable()
以及getWidth
和getHeight
。
我该如何解决这个问题?
ivImage.setBackgroundDrawable(gd);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
答案 0 :(得分:4)
只需阅读该功能的文档并执行他们告诉您的操作。对于
ImageView.setBackgroundDrawable
,文档告诉您使用setBackground
:
public void setBackgroundDrawable(Drawable background) 在API级别1中添加
此方法在API级别16中已弃用。请使用setBackground(Drawable)
对于getWidth
上的getHeight
和Display
,文档会告诉您这样做:
public int getWidth() 在API级别1中添加
此方法在API级别13中已弃用。请改用getSize(Point)。
这归结为
Point point = null;
getWindowManager().getDefaultDisplay().getSize(point);
int width = point.x;
int height = point.y;
答案 1 :(得分:2)
只需将.setBackgroundDrawable(gd);
替换为.setBackground(gd);
这很可能会解决您的问题
ivImage.setBackground(gd);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
答案 2 :(得分:1)
如果您有资源ID,那么我们可以使用 API级别1 的setBackgroundResource()
。
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
setBackgroundDrawable();
} else {
setBackground();
}
根据source,setBackground()
只需拨打setBackgroundDrawable()
public void setBackground(Drawable background) {
setBackgroundDrawable(background);
}
@Deprecated
public void setBackgroundDrawable(Drawable background) { ... }