如何在活动上创建视图

Luc*_*aSC 3 android android-activity

所以我有这个类扩展了一个活动.但是我想在屏幕上画一些东西,所以我需要制作一个画布.但是我无法扩展View,因为它已经是一项活动.我该怎么办?

我的活动有onClick方法,我用来做一些东西,但我想做的是在我调用onClick方法时绘制一个简单的图像.

谢谢.

public class Stuff extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
(...)
}

@Override
public void onClick(View arg0) {
(...)
}
Run Code Online (Sandbox Code Playgroud)

ρяσ*_*я K 6

第1步:通过扩展视图创建一个类:

public class DrawView extends View {  
    public float currentX=40;  
    public float currentY=50;  

    public DrawView(Context context) {  
        super(context);  
        // TODO Auto-generated constructor stub  
    }  

    @Override  
    protected void onDraw(Canvas canvas) {        
        super.onDraw(canvas);   
        Paint paint=new Paint();  
        paint.setColor(Color.RED);  
        canvas.drawCircle(currentX, currentY, 25, paint);  
    }  

} 
Run Code Online (Sandbox Code Playgroud)

第2:在你的东西活动中:

public class Stuff extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);  
setContentView(R.layout.main);  
LinearLayout root=(LinearLayout) findViewById(R.id.root); 
(...)
}

@Override
public void onClick(View arg0) {
//DRAW YOUR VIEW ON BUTTON CLICK
final DrawView drawView=new DrawView(this);  
drawView.setMinimumWidth(300);  
drawView.setMinimumHeight(500);
drawView.currentX=200;  
drawView.currentY=200;  
drawView.invalidate(); 
root.addView(drawView);
(...)
}
Run Code Online (Sandbox Code Playgroud)

第3:您的Activity main.xml为:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical"   
    android:background="#99FFCC"  
    android:id="@+id/root">  
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

最后在问这里之前尝试搜索谷歌.谢谢