activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<com.lk.snake_point.Point
android:id="@+id/point"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
Point.java
package com.lk.snake_point;
import java.util.Random;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.View;
public class Point extends View{
//图片
Bitmap point=null;
//画笔
private final Paint mpaint=new Paint();
//随机生成器
private static final Random RNG=new Random();
//点的位置
private Coor[] points=new Coor[5];
//屏幕的高度和宽度
public int view_x=0,view_y=0;
public Point(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public Point(Context context, AttributeSet attrs) {
super(context, attrs);
}
//加载图片到内存
public void LoadImage()
{
Resources r=this.getContext().getResources();
point=((BitmapDrawable)r.getDrawable(R.drawable.hehe)).getBitmap();
}
//设置当前窗口宽度和高度
public void setview(int height,int width)
{
view_x=width;
view_y=height;
}
//随机生成点的位置
public void addRandompoint()
{
points[0]=new Coor(RNG.nextInt(view_x),RNG.nextInt(view_y));
points[1]=new Coor(RNG.nextInt(view_x),RNG.nextInt(view_y));
points[2]=new Coor(RNG.nextInt(view_x),RNG.nextInt(view_y));
points[3]=new Coor(RNG.nextInt(view_x),RNG.nextInt(view_y));
points[4]=new Coor(RNG.nextInt(view_x),RNG.nextInt(view_y));
}
private class Coor
{
public int x,y;
public Coor(int new_x,int new_y)
{
x=new_x;
y=new_y;
}
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int i;
for(i=0;i<5;i++)
{
canvas.drawBitmap(point, ((float)points[i].x),((float)points[i].y),mpaint);
}
}
}
MainActivity.java
package com.lk.snake_point;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.DisplayMetrics;
public class MainActivity extends Activity {
Point po=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
po=(Point)findViewById(R.id.point);
po.LoadImage();
DisplayMetrics ds=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(ds);
po.setview(ds.heightPixels, ds.widthPixels);
update();
}
private Refrsh Re=new Refrsh();
class Refrsh extends Handler{
@Override
public void handleMessage(Message msg) {
po.addRandompoint();
po.invalidate();
sleep(1000);
}
public void sleep(long t)
{
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), t);
}
}
public void update()
{
po.addRandompoint();
Re.sleep(1000);
}
}