假设我有 3 节课。
- A 类(扩展活动)
B
类 C 类(扩展视图)
A 创建一个包含 的 B 对象Bitmap
。A 也使 C 无效。ConDraw
将 a 绘制Bitmap
到它的Canvas
.
如何绘制Bitmap
B 持有的而不Bitmap
在 C 中创建另一个对象?请注意,保持相同的“类结构”对我来说很重要。
这是伪代码。您可以看到这会将 2 个Bitmap
对象放入内存中。谢谢!
public class A extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
B b = new B();
C c = (C) findViewById(R.id.c);
c.passTheBitmap(b.bitmap);
c.postInvalidate();
}
}
public class B {
public Bitmap bitmap;
public B(){
bitmap = BitmapFactory.decodeResource(ActivityAContext.getResources(), R.drawable.fooBitmap);
}
}
public class C extends View {
public Bitmap bitmap;
public C(Context context, AttributeSet attrs) {
super(context, attrs);
}
public passTheBitmap(Bitmap b) {
bitmap = b;
}
@Override
public void onDraw(Canvas canvas) {
if (bitmap != null) {
canvas.drawBitmap(bitmap, 0, 0, null);
}
}
}