Trong 1 thread mà tạo 1 thread nữa thì ntn?
đây là tóm tắt project của mình, kết quả của ứng dụng là cứ khi chạm tay vào màn hình thì tạo ra 1 quả bóng ở vị trí chạm đó, và quả bóng rơi xuống, để quản lý, tạo, và vẽ các quả bóng sử dụng "public List<Ball> mangball=new ArrayList<Ball>();"
mỗi lần add một quả bóng là chương trình bị delay, khiến các quả bóng dang rơi bị giật.
Mã:
public class Bsurface extends SurfaceView implements Runnable{
Bgame context;
Thread thread;
Manage_ball1 manage1;
Manage_ball2 manage2;
........cac khai bao khác
public Bsurface(Bgame context) {
this.context=context;
thread=new Thread(this);
thread.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
if(!bholder.getSurface().isValid())
continue;
//ve cac doi tuong chuyen dong
manage1.ve(canvas);
manage2.ve(canvas);
Canvas canvas=bholder.lockCanvas();
bholder.unlockCanvasAndPost(canvas);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class Manage_ball1{
public List<Ball> mangball=new ArrayList<Ball>();
//cac thuoc tinh
public Manage_ball1(Bsurface bsurface){
this.bsurface=bsurface;
}
public void ve(Canvas canvas){
//creat mang ball
if( ...."chạm tay vao man hinh==true"...){
mangball.add(new Ball(bsurface,toado_x,toado_y);
}
//ve cac qua bong trong list
for(int i=0;i<mangball.size();i++){
mangball.get(i).ve(canvas);
}
}
}
///tomtat class ball
public class Ball{
Bsurface b;
float x,y;
public Ball(Bsurface b,float x,float y){
this.b=b;
this.x=x;
this.y=y;
}
public void ve(Canvas canvas){
//di chuyen ball
y=y+2;
thay doi toa do ball
//ve ball
canvas.drawBitmap(ball,x,y,null);
}
Ngoại trừ một số ít trường hợp rãnh mũi - má và “râu rồng silicon” xuất hiện sớm, có khi từ tuổi thanh niên do cơ địa, còn lại, đại đa số do căn do lão hoá đã gây nên ba diễn biến: Giảm mô xương gò...
Cách thẩm mỹ má ở tuổi trung niên...