Androidはゼロから(二)
5517 ワード
知識点:1、DDMS:Androidプログラムおよびデバイスを追跡およびデバッグできるAndroidのツール
2、Logcat:androidのコンソール
Androidのコンソールに異常またはエラーメッセージを出力します(コードは以下の通りです)
try{
Class.forName("111");
}catch(Exception e){
//
Log.e("tag", e.toString());
//
StackTraceElement[] ste=e.getStackTrace();
for(int i=0;i<ste.length;i++){
Log.e("tag", ste[i].toString());
}
}
エラー情報(情報を出力する方法)を簡単に見つけるには
// logcat
Log.e("Tag", " error , ");
Log.w("Tag", " warning , ");
Log.d("Tag", " debug , ");
Log.i("Tag", " info , ");
Log.v("Tag", " verbose , ");
// , d, , i
// e
// , v, logcat
3、View:Viewはandroidの一種で、androidの中ですべて見える、見えない、コントロールであればview(swingのComponentに相当)と呼ぶことができる
Viewには、3.1、View Group:レイアウト、コンテナViewの2種類があります.
3.2、View:Button、TextViewなどの従来のコントロール.
4、簡単な例(水滴シミュレーション)
手順1:Circleクラスのシミュレーション水滴を新規作成します(コードは次のとおりです).
package com.zjyb.demo3;
import android.graphics.Color;
//
public class Circle {
// private, get/set
// android
// X
public float x;
// Y
public float y;
//
public float radius;
//
public int color=Color.parseColor("#16e9c9");
//
public int alpha=255;
}
ステップ2:MyViewクラスの新規継承View(コードは次のとおり)
package com.zjyb.demo3;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View implements Runnable{
public void run(){
while(true){
//invalidate postInvalidate
// , , UI
// Handler , UI
// Handle
postInvalidate();
try{
Thread.sleep(100);
}catch(Exception e){
}
}
}
public MyView(Context context) {
super(context);
new Thread(this).start();
// TODO Auto-generated constructor stub
}
public Circle c;
//
public List<Circle> historyCircle=new ArrayList();
public void add(Circle c){
//if(historyCircle.size()>10){
// historyCircle.remove(0);
//}
historyCircle.add(c);
}
// , ,
@Override
protected void onDraw(Canvas canvas) {
Random rd=new Random();
//
Paint paint=new Paint();
//
//
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(4);
//
for(int i=0;i<historyCircle.size();i++){
Circle c= historyCircle.get(i);
paint.setColor(c.color);
//
paint.setAlpha(c.alpha);
canvas.drawCircle(c.x, c.y, c.radius, paint);
c.radius=c.radius+5;
c.alpha=c.alpha-12;
if(c.radius>100){
historyCircle.remove(i);
}
}
//if(c!=null){
// canvas.drawCircle(c.x, c.y, c.radius, paint);
//}
super.onDraw(canvas);
}
}
ステップ3、MainActivityのコードを作成する
package com.zjyb.demo3;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
MyView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// , setContentView
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
view=new MyView(this);
setContentView(view);
}
// ,
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
//Touch , :Down Up
//if(event.getAction()==MotionEvent.ACTION_UP){
Random rd=new Random();
Circle c=new Circle();
c.x=event.getX();
c.y=event.getY();
c.radius=10;//rd.nextInt(51)+10;
//c.color=Color.rgb(rd.nextInt(250), rd.nextInt(250), rd.nextInt(250));
view.add(c);
//view.historyCircle.add(c);
//view.c=c;
// , view
view.invalidate();
//}
return super.onTouchEvent(event);
}
}
ソースのダウンロードはこちらをクリックしてください: