知识点: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());}}


如何方便快捷的找出错误信息(输出信息的方式)
//输出信息到logcatLog.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、ViewGroup:布局,容器View

3.2、View:Button,TextView等传统的控件。


4、一个简单的例子(模拟水滴)

步骤一:新建一个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;}



步骤二:新建一个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);}//绘制方法,每次当控件被构建的时候调用,然后绘制控件@Overrideprotected 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);}}


步骤三、编写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;@Overrideprotected 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);}//触摸方法,当屏幕被触摸的时候自动调用@Overridepublic 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);}}



源码下载请点这里:

更多相关文章

  1. Android中获取当前位置的使用步骤
  2. 如何制作Jar包并在android中调用jar包
  3. Delphi处理Android的路径信息
  4. Android主流Router库对比(ARouter、ActivityRouter)
  5. android系统信息(内存、cpu、sd卡、电量、版本)获取
  6. android 锁屏界面处理
  7. Android热插拔事件处理流程--Vold
  8. android apk 签名信息 相关
  9. Android系统信息(内存、cpu、sd卡、电量、版本)获取

随机推荐

  1. android学习笔记21:日期时间控件
  2. Android(安卓)自定义左滑删除列表
  3. AChartEngine api说明
  4. retrofit rxjava android 封装 使用
  5. Android实现新手引导半透明蒙层效果
  6. Android常用三方框架
  7. APK打包过程中出现Error:"app_name" is n
  8. Picasso网络图片加载 (毕加索)
  9. 如何实现Android(安卓)布局背景模糊化处
  10. Android实现文件选择