2011-05-08 91 views
0

我有一个具有绘制位图的自定义视图的应用程序。我想在位图顶部的视图中放置一个按钮。该活动的setContentView设置为自定义视图类,因此我无法从main.xml充气按钮。我如何解决这个问题?是否有可能在视图类中以编程方式创建按钮,然后附加一个侦听器?如何将按钮添加到显示位图的自定义视图

公共类Jjilapp延伸活动{

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 


} 

}

回答

1

您可以:

  • 使用FrameLayout(它可以堆起来的观点)包含您的视图和按钮;
  • 在你的onDraw()中画一些按钮,并检查触摸是否在该区域;
  • 从某个ViewGroup*Layout派生出您的视图,以便您可以添加视图。

编辑:在最后一种情况下,请记得拨打setWillNotDraw(false)

相关问题