Android Image Resize basic - PullRequest
       1

Android Image Resize basic

2 голосов
/ 25 ноября 2011

Мне нравится изменять размер растрового изображения, если оно большое, сделать его маленьким и разместить его в определенном месте на виде поверхности, мне нужно получить ширину и высоту устройства, а затем размер растрового изображения и разместить их на виде поверхности, а затемвозьмите другое изображение, измените его размер и поместите в любое место, которое мне нравится.Как узнать координаты местоположения в первую очередь (чтобы разместить второе изображение - это должно быть независимо от устройства, если расположение экрана больше / меньше не должно меняться)

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

final int canvasWidth = getWidth();
final int canvasHeight = getHeight();

int imageWidth = img.getWidth();
int imageHeight = img.getHeight();

float scaleFactor = Math.min( (float)canvasWidth / imageWidth, 
                              (float)canvasHeight / imageHeight );
Bitmap scaled = Bitmap.createScaledBitmap(  img, 
                                            (int)(scaleFactor * imageWidth), 
                                            (int)(scaleFactor * imageHeight), 
                                            true );
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(scaled, 10, 10, null);

масштабировать большое изображение, но оно не умещается на весь экран "img - растровое изображение похоже на фоновое изображение"

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

1 Ответ

1 голос
/ 25 ноября 2011

Сохраните ваше растровое изображение в качестве источника для манипуляции и отобразите его с помощью ImageView:

Bitmap realImage = BitmapFactory.decodeFile(filePathFromActivity.toString());

Bitmap newBitmap = scaleDown(realImage, MAX_IMAGE_SIZE, true);


imageView.setImageBitmap(newBitmap);


//scale down method
public static Bitmap scaleDown(Bitmap realImage, float maxImageSize,
        boolean filter) {
    float ratio = Math.min(
            (float) maxImageSize / realImage.getWidth(),
            (float) maxImageSize / realImage.getHeight());
    int width = Math.round((float) ratio * realImage.getWidth());
    int height = Math.round((float) ratio * realImage.getHeight());

    Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width,
            height, filter);
    return newBitmap;
}

И установите ширину и высоту вашего ImageView на "fill_parent".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...