Листать растровое изображение в андроид справке? - PullRequest
6 голосов
/ 15 октября 2011

Я хочу сохранить память для своей игры, и я хотел спросить вас, потому что я ничего не мог найти, и в прошлый раз, когда я что-то спросил здесь, я получил хороший ответ.Могу ли я перевернуть растровое изображение внутри затмения, чтобы сэкономить память для спрайтов?Все учебники, которые я нашел, были о вращении, а не о перевороте.Учебники для переключения растрового изображения были только для открытого Gl или что-то в этом роде.Пожалуйста, помогите мне.Я искал учебники в Google, но я сдался на странице 5. Кто-нибудь может мне помочь?У кого-нибудь есть хороший учебник?Кстати, я использую холст.Спасибо!

Каждый раз, когда пытаюсь запустить его, я получаю силу сближения ... ты можешь понять это?вот мой код:

       Matrix flipHorizontalMatrix = new Matrix();
       flipHorizontalMatrix.setScale(-1,1);
       flipHorizontalMatrix.postTranslate(0, canvas.getHeight()-arrowL.getHeight());
       canvas.drawBitmap(arrowL, flipHorizontalMatrix, null);

Я хочу, чтобы стрелка была в правом нижнем углу.

Ответы [ 2 ]

19 голосов
/ 15 октября 2011

Поскольку вы используете Canvas, почему бы не попробовать метод drawBitmap (Bitmap bitmap, Matrix matrix, Paint paint). Используйте Matrix, который переворачивает координаты х.

Вы можете сделать что-то вроде этого:

Matrix flipHorizontalMatrix = new Matrix();
flipHorizontalMatrix.setScale(-1,1);
flipHorizontalMatrix.postTranslate(myBitmap.getWidth(),0);

canvas.drawBitmap(myBitmap, flipHorizontalMatrix, myPaint);
0 голосов
/ 24 июля 2013

Спасибо, посмотрите этот код, это может быть полезно для вас, чтобы повернуть растровое изображение. Здесь я взял пример с аквариумными рыбками, его нужно переместить слева направо и перевернуть, а затем продолжить движение справа налево иViceversa .. вот код для вас ..

           protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    fish = BitmapFactory.decodeResource(getResources(), R.drawable.fish);
            v = new OurView(this); 

открытый класс OurView расширяет SurfaceView реализует Runnable {

    Thread t = null;
    SurfaceHolder holder;
    boolean isitOK = false;
    String Flag = "right";
    Bitmap rotatedBitmap=null;
    Matrix rotateRight = new Matrix();
    Matrix rotateLeft = new Matrix();
    Bitmap rSprite=null;
    Bitmap lSprite=null;
    public OurView(Context context) {
        super(context);
        holder = getHolder();
        rotateLeft.setScale(-1, 1);


         rSprite = Bitmap.createBitmap(fish, 0, 0,
                fish.getWidth(), fish.getHeight(), rotateRight, true);
         lSprite = Bitmap.createBitmap(fish, 0, 0,
                fish.getWidth(), fish.getHeight(), rotateLeft, true);
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub

        while (isitOK == true) {
            if (!holder.getSurface().isValid()) {
                continue;
            }
            Canvas canvas = holder.lockCanvas();

            canvas.drawBitmap(bg, 0, 0, null);
            if(Flag == "right")
            canvas.drawBitmap(lSprite, x, y, null);

            if(Flag == "left")
            canvas.drawBitmap(fish, x, y, null);    

                if (Flag == "right" && x <= 60) {

                    x++;
                    if (x == 60) {

                        Flag = "left";
                    //  canvas.drawBitmap(rSprite, 0, fish.getWidth(), null);
                        canvas.drawBitmap(fish, x, y, null);    
                    }
                }               
                if (Flag == "left" && x >= 0) {
                    x--;
                    if (x == 0) {
                    Flag = "right";

                    canvas.drawBitmap(fish, x, y, null);
                    }
                }




            holder.unlockCanvasAndPost(canvas);



        }
    }
...