android程式設計實例入門 -Sample改寫分享 (2014/10/13)

android程式設計實例入門 -Sample改寫分享 (2014/10/13)

android程式設計實例入門 -Sample改寫分享 (2014/10/13)

 

此範例為程式碼(05\Sample06)的改寫,利用一個LinearLayout、一個SampleView實作GUI界面,x建立自己的View元件,並利用onTouchEvent來實作繪圖功能,看起來會是一個球體 

跟著滑鼠移動使用範例,程式碼如下所示:

 

 

package com.jashsample;
import java.text.SimpleDateFormat;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.text.format.DateFormat;
import android.text.method.KeyListener;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
/*
 * 建立自己的View元件,並利用onTouchEvent來實作繪圖功能,看起來會是一個球體跟著滑鼠移動。
 */
public class MainActivity extends Activity {
SampleView sv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
setContentView(ll);
sv = new SampleView(this);
ll.addView(sv);
}
class SampleView extends View
{
float x, y;
public SampleView(Context cn)
{
super(cn);
x = -10; y = -10;
}
public boolean onTouchEvent(MotionEvent e)
{
x = e.getX();
y = e.getY();
this.invalidate();//觸發onDraw
return true;
}
protected void onDraw(Canvas cs)
{
super.onDraw(cs);
Paint p = new Paint();
p.setColor(Color.BLUE);
p.setStyle(Paint.Style.FILL);
cs.drawCircle(x, y, 10, p);
}
}
}

 


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *