java - 简单的 Drawable 装饰器不起作用

标签 java android

我正在一个 Activity 中执行此操作,其中 imageImageView:

Drawable d = getResources().getDrawable(R.drawable.somejpeg);

//only one of the lines below               
image.setImageDrawable(d); //works
image.setImageDrawable(new DrawableDecorator(d)); //does not work - blank image

这是我的可绘制装饰器:

import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.drawable.Drawable;

public final class DrawableDecorator extends Drawable {

    private final Drawable drawable;

    public DrawableDecorator(Drawable drawable) {
        this.drawable = drawable;
    }

    @Override
    public void draw(Canvas canvas) {
        drawable.draw(canvas);
    }

    @Override
    public void setAlpha(int alpha) {
        drawable.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(ColorFilter cf) {
        drawable.setColorFilter(cf);
    }

    @Override
    public int getOpacity() {
        return drawable.getOpacity();
    }

}

我已经覆盖了我必须做的事情,只是传递到装饰项目,但是我错过了什么导致失败?

请注意,调用了绘制方法。

最佳答案

我应该通过一些更重要的覆盖。

@Override
public boolean setVisible(boolean visible, boolean restart) {
    return drawable.setVisible(visible, restart);
}

@Override
public void setBounds(int left, int top, int right, int bottom) {
    drawable.setBounds(left, top, right, bottom);
}

@Override
public void setBounds(Rect bounds) {
    drawable.setBounds(bounds);
}

@Override
public int getIntrinsicHeight() {
    return drawable.getIntrinsicHeight();
}

@Override
public int getIntrinsicWidth() {
    return drawable.getIntrinsicWidth();
}

关于java - 简单的 Drawable 装饰器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546214/

相关文章:

java - 插入大量记录

java - 从不同的项目访问一个类

java - 将泛型列表分配给具体的ArrayList会导致编译时错误

java - 使用 scene2d 在 libgdx 中居中选择框文本

android - 持续部署到 Play Store For Native Application

android - 如何使用 sqlite 获取一个月的数据?如果没有特定日期的数据,那么我想要零代替那个

java - 无法在 Android 的 HTTP 请求中获取 JSON

java - 两次第二次 ArgumentCaptor.capture() in Mockito.when()

android - ArrayAdapter 的 getPositionForSection 和 getSectionForPosition 以及 getSections 方法

android - 打开其他安卓应用