java Android - programowe skalowanie / przycinanie obrazów

Cóż, wszystko to torturuje mnie przez długie tygodnie, ustawiam obraz o wysokości 227 pikseli, który skaluje go do 170 pikseli, nawet jeśli chcę, aby był zawijany, gdy tylko to robię.

Dobrze. Tutaj biorę My Image, który ma 1950 pikseli długości (umieściłem tutaj jego część, dzięki czemu można zrozumieć, jak powinien wyglądać).

Po pierwsze, chcę skalować z powrotem do 227 pikseli wysokości, ponieważ tak zostało zaprojektowane i jak powinno być

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.ver_bottom_panel_tiled_long);
            int width = bitmapOrg.getWidth();
        int height = bitmapOrg.getHeight();
        int newWidth = 200; //this should be parent's whdth later
        int newHeight = 227;

        // calculate the scale
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        // create a matrix for the manipulation
        Matrix matrix = new Matrix();
        // resize the bit map
        matrix.postScale(scaleWidth, scaleHeight);

        // recreate the new Bitmap
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, 
                          width, height, matrix, true); 


        BitmapDrawable dmpDrwbl=new BitmapDrawable(resizedBitmap);

    verbottompanelprayer.setBackgroundDrawable(dmpDrwbl);

więc ... to wcale nie jest przycięty obraz - nie, to 1950 pikseli wciśnięty w 200 pikseli.

Ale chcę po prostu wyciąć wszystko oprócz tej 200 pikseli lub jakiejkolwiek szerokości, którą ustawię - przyciąć ją i nie naciskać całego tego długiego obrazu na obszar 200 pikseli.

Również BitmapDrawable (bitmapa bitmapowa); i imageView.setBackgroundDrawable (drawable); są przestarzałe - jak mogę to zmienić?

questionAnswers(1)

yourAnswerToTheQuestion