开发者

How to stack a canvas and a button?

开发者 https://www.devze.com 2023-03-29 11:02 出处:网络
I want to write the following application. There is a Canvas and a Button stacked vertically in a LinearView. When the button

I want to write the following application. There is a Canvas and a Button stacked vertically in a LinearView. When the button is pressed the first time a 开发者_运维技巧circle is drawn in the canvas, then if pressed again the circle disappears. The circle must appear centered in its space.

Any ideas?

Thanks,

JG


This should work

Custom View class

public class DrawView extends View {
    private Canvas viewCanvas;

    public DrawView(Context context) {
        super(context);
        setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT
            ,LinearLayout.LayoutParams.FILL_PARENT)); 
    }

    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override 
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint p = new Paint();
        p.setColor(Color.RED);
        canvas.drawCricle(getWidth()/2,getHeight()/2,50,null);
        viewCanvas = canvas;
    }

    public clearCircle(){
        viewCanvas.drawColor(Color.BLACK);
    }
}

Activity class should look like this

public class KeyboardTopDemo extends Activity {
    private FrameLayout container;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ss);

        container = (FrameLayout)findViewById(R.id.sc);        
        container.addView(new DrawView(this));
    }

    public void clearHandler(View target){
        container.getChildAt(0).clearCircle();
    }
}

This is the layout xml file

<?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">
    <FrameLayout android:orientation="vertical" android:layout_width="fill_parent" 
        android:layout_height="0dip" android:id="@+id/sc" 
        android:scrollbars="horizontal" android:layout_weight="1.0">
        <ImageView android:layout_width="fill_parent" 
            android:layout_height="fill_parent" android:src="@drawable/chips"/>
    </FrameLayout>
    <Button android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:text="Clear" android:onClick="clearHandler"/>     
</LinearLayout>
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号