Androidの【LinearLayoutカスタムView】


<pre name="code" class="plain"><pre name="code" class="html">main.xml
 
 
 
  
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:id="@+id/root"
	>
</LinearLayout>
@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//        LinearLayout  
		LinearLayout root = (LinearLayout)findViewById(R.id.root);
		//      DrawView  
		final DrawView draw = new DrawView(this);
		//            、  
		draw.setMinimumWidth(300); 
		draw.setMinimumHeight(500); 
		// draw    Touch  
		draw.setOnTouchListener(new OnTouchListener()
		{
			@Override
			public boolean onTouch(View arg0, MotionEvent event)
			{
				//  draw   currentX、currentY    
				draw.currentX = event.getX();
				draw.currentY = event.getY();
				//  draw    
				draw.invalidate();
				//  true             
				return true;
			}		
		});
		root.addView(draw);
	}

DrawView
public class DrawView extends View
{
	public float currentX = 40;
	public float currentY = 50;
	/**
	 * @param context
	 */
	public DrawView(Context context)
	{
		super(context);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void onDraw (Canvas canvas)
	{
		super.onDraw(canvas);
		//    
		Paint p = new Paint();
		//       
		p.setColor(Color.RED);
		//      (    )
		canvas.drawCircle(currentX , currentY , 15 , p);		
	}
}