在onDraw方法中绘制随机位图

时间:2013-09-04 10:47:15

标签: android bitmap android-custom-view ondraw

首先,我将我的卡片添加到这样的列表中:

    private void initCards() {
    for (int i = 0; i < 20; i++) {  
    Bitmap tempBitmap = BitmapFactory.decodeResource(myContext.getResources(),R.drawable.ic_launcher);
    scaledCardW = (int) (screenW/10); 
    scaledCardH = (int) (scaledCardW*1.28);
    Bitmap scaledBitmap = Bitmap.createScaledBitmap(tempBitmap,scaledCardW, scaledCardH, false);        
    deck.add(scaledBitmap); 

    }

但是当谈到绘制方法时,我的程序正在改变像动画这样的东西。     我的onDraw方法在这里:

    protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);

    int left=newInteger.nextInt(screenW);
    int right=newInteger.nextInt(screenH);

    for(int i=0 ; i<k ;i++){
        canvas.drawBitmap(deck.get(i), left, right, null);
    }


}

这些位图必须具有随机位置,如果我从主Activity中更改k,则必须绘制不同数量的位图。因此,ı无法删除invalite()函数。

有人能帮帮我吗?不幸的是,关于这个问题的另一个话题并未提供我的要求。

1 个答案:

答案 0 :(得分:0)

您的位图一直在移动,因为您每次绘制时都会随机化他们的位置。尝试移动这些行:

left = newInteger.nextInt(screenW);
right = newInteger.nextInt(screenH);

进入改变k值的同一函数。