在我的应用程序中,我有一个活动,在该类中,我有一个内部类,该类有一些覆盖方法,如 onDraw()
。
我想在该活动或不同的类中调用 onDraw()
方法。
有可能吗? 如果可能的话,请给我一些方法来做到这一点。
以下是我的代码,
public class MainClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (D)
Log.e(TAG, "+++ ON CREATE +++");
rot1 = new Rotate1(this);
rot1.onDraw(canvas); }
//Innerclass
public class Rotate1 extends ImageView {
public Rotate1(Context context) {
super(context);
random = new Random();
paint = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
height = this.getHeight();
width = this.getWidth();
// Log.d(tag, "Height of the canvas is = " + height);
// Log.d(tag, "Width of the canvas is = " + width);
//
final Bitmap bitmap = rollerDesk;
final Bitmap bitmap1 = mBitmap1;
ball2Rotate = new Canvas(mBitmap1);
}
}
谢谢
答案 0 :(得分:0)
从具有方法名称的内部类(如onDraw)隐藏外部类(或其中一个超类)中的方法,可以在内部类方法中使用以下表示法:
Outer.this.onDraw(args);
答案 1 :(得分:0)
你只需要在类中扩展onDraw(),就像扩展到原始onDraw的地方一样 - 小心,因为有时你必须在超类中调用onDraw
答案 2 :(得分:0)
系统在内部对特定事件调用overRidden方法。所以总是调用该事件而不是重写方法。
在你的情况下调用CustomView.invalidate()
,它将在内部调用onDraw()并刷新该视图。