2015-11-03 96 views
0

我具有延伸活动和获得它认为这样一个类:如何在扩展视图的类中创建按钮和图像视图?

setContentView((View) viewClass); 

viewClass类是从视图扩展类。

我需要在这个类中实现一些按钮和图像视图。但是如何?

+0

为什么不从xml设置活动的内容视图? –

+0

你打算实现什么? –

+0

您必须重写onDraw,然后绘制按钮和图像,以便获取按钮上的事件,则必须在touchlistener内部检查按下的坐标是否位于按钮区域内。 –

回答

0

您需要延长从的ViewGroup或样的布局,例如LinearLayout中的自定义视图,这将帮助你以编程方式从样活性增加另一个视图布局:

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    LinearLayout view = new LinearLayout(this); 
    setContentView(view); 
    TextView tv = new TextView(this); 
    tv.setText("asas"); 
    view.addView(tv); 
} 

}

+0

哦谢谢它的作品:) – user5508330

0

你可以做类似下面

让你的主要活动是如下

public class MainActivity extends Activity{ 
     MyView view; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      Context ctx = getApplicationContext(); 
      view=new MyView(ctx); 
      setContentView(view); 
     } 
    } 

,让您的视图类扩展任何容器布局。

public class MyView extends RelativeLayout{ 

    public MyView(Context context) { 
     super(context); 


     RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     this.setLayoutParams(layoutParams); 

     RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     TextView tv = new TextView(context); 
     tv.setText("hello"); 
     tv.setId(1); 

     Button b = new Button(context); 
     params1.addRule(RelativeLayout.BELOW, tv.getId()); 
     b.setText("Hi"); 
     b.setId(2); 

     this.addView(tv); 
     this.addView(b, params1); 

    } 
} 
+0

我会尝试它... – user5508330

+0

该类有这样的:public viewClass(Context context,AttributeSet attr){}它也有AttributeSet参数。谢谢你的帮助。以上答案解决了我的问题。 – user5508330