gpt4 book ai didi

android - 在类构造函数中创建一个可绘制对象(并通过扩展 ?drawable 类)

转载 作者:行者123 更新时间:2023-11-29 22:30:48 26 4
gpt4 key购买 nike

我正在使用一个处理图像异步加载的类。在加载期间,该类加载一个 colordrawable(稍后将分配给下载的图像)。我想使用可绘制资源来实现“正在加载”图像,而不是颜色。这怎么可能?在这个可绘制类的“外部”进行操作会更容易,但作为一个限制,我必须在类内部进行。无法想出如何在类中引用资源的方法。

目前:

class myDrawable extends ColorDrawable {
public myDrawable () {
super (Color.BLACK);
}
}

使用 BitmapDrawable 的方式是否正确?

class myDrawable extends BitmapDrawable {
public myDrawable () {
super(); // something here to fetch the drawable?
}
}

BitmapDrawable的构造函数如下:

    public BitmapDrawable(Resources res)

如果可以使用,如何获得要为其传递的正确“resourcees”标识符?例如。 super (R.drawable.stubImage);

最佳答案

static class HolderDrawable extends BitmapDrawable {
private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference;

public HolderDrawable(BitmapDownloaderTask bitmapDownloaderTask) {
super(mDefaultBitmap);
bitmapDownloaderTaskReference = new WeakReference<BitmapDownloaderTask>(
bitmapDownloaderTask);

}

public BitmapDownloaderTask getBitmapDownloaderTask() {
return bitmapDownloaderTaskReference.get();
}

@Override
public void draw(Canvas arg0) {
super.draw(arg0);
}

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

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

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

您可以通过在线下载或资源创建 mDefaultBitmap。这一步很简单,google一下就可以了。我建议您将 mDefaultBitmap 设置为静态字段,这样您就不必在每次创建 HolderDrawable 时都创建它。

关于android - 在类构造函数中创建一个可绘制对象(并通过扩展 ?drawable 类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com