如何解决不推荐使用的setBackgroundDrawable

时间:2016-02-07 11:09:06

标签: android android-studio background drawable

在Android Studio上,它一直说不推荐setBackgroundDrawable()以及getWidthgetHeight

我该如何解决这个问题?

ivImage.setBackgroundDrawable(gd);
    Display display = getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();

3 个答案:

答案 0 :(得分:4)

只需阅读该功能的文档并执行他们告诉您的操作。对于 ImageView.setBackgroundDrawable,文档告诉您使用setBackground

  

public void setBackgroundDrawable(Drawable background)   在API级别1中添加

     

此方法在API级别16中已弃用。请使用setBackground(Drawable)

对于getWidth上的getHeightDisplay,文档会告诉您这样做:

  

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();
}

根据sourcesetBackground()只需拨打setBackgroundDrawable()

 public void setBackground(Drawable background) {
    setBackgroundDrawable(background);
  }

@Deprecated 
public void setBackgroundDrawable(Drawable background) { ... }