android设置背景图片不填充整个_用Android 中的Bitmap加载图片到画布上,为什么图片不能填充整个画面...

源代码:publicclassGameextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(newFlowerView(this));}staticpubli...

源代码:

public class Game extends Activity {

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(new FlowerView(this));

}

static public class FlowerView extends SurfaceView implements Runnable,Callback

{

Random rand=new Random();

private SurfaceHolder sfh=null;

private boolean isRunning=true;

private Canvas canvas=new Canvas();

private Thread flowerthread=null;

private Paint p=new Paint();

private Bitmap newmap=null;

private Bitmap newmap1=null;

private Matrix matrix=new Matrix();

public FlowerView(Context context) {

super(context);

sfh=getHolder();

sfh.addCallback(this);

// TODO Auto-generated constructor stub

}

public void draw()

{

setBackgroundResource(R.drawable.garden);

}

public void onDraw()

{

Bitmap backgroundmap=BitmapFactory.decodeResource(getResources(), R.drawable.garden);

canvas.drawBitmap(backgroundmap, matrix, null);

int count=rand.nextInt(10);

count=count%4;

switch(count) //Bitmap类

{

case 0:

Bitmap bitmap0 = BitmapFactory.decodeResource(getResources(), R.drawable.flower1);

canvas.drawBitmap(bitmap0,rand.nextFloat()*400,rand.nextFloat()*192, p);

break;

case 1:

Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.flower2);

canvas.drawBitmap(bitmap1,rand.nextFloat()*400,rand.nextFloat()*192, p);

break;

case 2:

Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.flower3);

canvas.drawBitmap(bitmap2,rand.nextFloat()*400,rand.nextFloat()*192, p);

break;

case 3:

Bitmap bitmap3 = BitmapFactory.decodeResource(getResources(), R.drawable.flower4);

canvas.drawBitmap(bitmap3,rand.nextFloat()*400,rand.nextFloat()*192, p);

break;

}

}

public void run() {

// TODO Auto-generated method stub

while(isRunning){

synchronized (sfh) {

canvas=sfh.lockCanvas(); //取得当前画布对象。

//draw();

onDraw();

sfh.unlockCanvasAndPost(canvas);

}

try

{

Thread.sleep(2000);

}catch(InterruptedException e)

{

e.printStackTrace();

}

}

}

public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2,

int arg3) {

// TODO Auto-generated method stub

}

public void surfaceCreated(SurfaceHolder arg0) {

// TODO Auto-generated method stub

isRunning=true;

flowerthread=new Thread(this);

flowerthread.start();

}

public void surfaceDestroyed(SurfaceHolder arg0) {

// TODO Auto-generated method stub

isRunning=false;

}

}

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值