如何缩小Bitmaps?

时间:2015-05-19 21:27:48

标签: android eclipse canvas bitmap

我在屏幕上看到了一个画布 - 以及一次又一次地绘制它的线程。我想绘制一些Bitmaps(球的图片),当我的应用程序运行时,它将变得越来越小。 我怎样才能做到这一点? 这对我来说非常重要,谢谢大家, 伊泰。

public class OurView extends SurfaceView implements Runnable{//to make it to a trhead

    float width,height;//בשביל ייצוג האורך והרוחב של המסך
    Point size = new Point();
    Random r =new Random();//בשביל להגריל מיקום לכדור
    Thread t=null;//הגדרת הטראד של החלק הזה
    SurfaceHolder holder;//דרך להתנהל עם הטראד
    boolean isItOk=false;//לקבוע מתי הקאנביס מפסיק לצייר את עצמו
    Display display = getWindowManager().getDefaultDisplay();//בשביל האורך והרוחב של המסך
    public OurView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        width=this.getWidth();
        height=this.getHeight();
        holder= getHolder();


    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        this.width = size.x;
        this.height = size.y;
        /*      x = (r.nextInt(width-redball.getWidth()));
        y=(r.nextInt(height-redball.getHeight()));
         */     
        height=(float) (height*0.85);
        int marginX= Math.round(width-redball.getWidth());
        int marginY =Math.round(height-redball.getHeight());
        x = r.nextInt(marginX);
        y=r.nextInt(marginY);
        while(isItOk==true&&pressed!=true){
            if (!holder.getSurface().isValid()) 
                continue;
            Canvas c= holder.lockCanvas();
            c.drawRGB(0, 0, 0);
            c.drawBitmap(redball, x, y, null);//אם רוצים שמרכז המעגל יהיה, אפשר לעשות חלק 2. אולי אופציה להעלאת רמה.
            c.
            holder.unlockCanvasAndPost(c);
        }
        if(pressed==true){
            Canvas c= holder.lockCanvas();
            c.drawRGB(0, 0, 0);
            holder.unlockCanvasAndPost(c);
        }
    }

2 个答案:

答案 0 :(得分:0)

你应该使用一种方法来缩放球并在AsyncTask上绘制它,因为绘制很多位图会造成内存泄漏。

答案 1 :(得分:0)

Bitmap.createScaledBitmap()

你要添加x,y大小,它会返回给你新的大小的位图