我的应用程序具有绘制位图的自定义视图。我想在位图顶部的视图中放置一个按钮。 activity的setContentView设置为自定义视图类,因此我无法从main.xml中膨胀该按钮。我该如何解决这个问题?是否可以在视图类中以编程方式创建按钮,然后附加一个侦听器?
公共类Jjilapp扩展了Activity {
private static final String TAG = "*********jjil";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(TAG, "***********inside oncreate about to set contentview = ");
setContentView(new TouchView(this));
}
class TouchView extends View{
public TouchView(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
.......
BitmapFactory.Options bfo = new BitmapFactory.Options();
bfo.inSampleSize = 1;
bm = BitmapFactory.decodeByteArray(imageArray, 0, imageArray.length, bfo);
bgr = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());
bgr = bm.copy(bm.getConfig(), true);
}// end of class touchView
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawBitmap(bgr, 0, 0, null);
canvas.drawCircle(centreX, centreY, radius,pTouch);
}//end of onDraw
}
}
答案 0 :(得分:1)
你可以:
FrameLayout
(它可以堆积视图); onDraw()
中绘制一些按钮并检查该区域是否有触摸; ViewGroup
或*Layout
派生您的观点,以便您可以向其添加观看次数。编辑:在最后一种情况下,请记得致电setWillNotDraw(false)
。