Здравствуйте, я хотел бы создать круглое изображение с небольшой рамкой и внутри загрузить изображение профиля пользователя, как это делает приложение Google Plus для Android. Проблема в том, что мне нужно установить это изображение как нарисованную верхнюю часть кнопки, поэтому я нашел этот код:
public BitmapDrawable putOverlay(Bitmap bitmap, Bitmap overlay) {
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(overlay, 0, 0, paint);
return new BitmapDrawable(bitmap);
}
Ведьма должна накладывать одно растровое изображение (изображение пользователя) на другое растровое изображение (овальной формы), но считается, что а) круглое растровое изображение находится над изображением профиля пользователя и б) изображение профиля пользователя слишком велико. Любые предложения о том, как это сделать или если я, по крайней мере, на правильном пути, очень ценятся.
ОБНОВИТЬ
Мне удалось показать два изображения, используя этот код:
public BitmapDrawable putOverlay(Bitmap bitmap, Bitmap overlay) {
int width = overlay.getWidth()-50;
int height = overlay.getHeight()-50;
Bitmap b = Bitmap.createScaledBitmap(bitmap, width, height,true);
Canvas canvas = new Canvas(overlay);
canvas.save();
canvas.translate(width,height);
Matrix matrix = new Matrix();
canvas.drawBitmap(overlay, matrix, null);
canvas.restore();
canvas.drawBitmap(b,matrix, null);
BitmapDrawable completeImage = new BitmapDrawable(getResources(),overlay);
return completeImage;
}
проблема в том, что изображение профиля не выровнено по круглому изображению. Это похоже на то, что изображение профиля рисуется из той же позиции x, y, что и круглое изображение. Также обратите внимание, что изображение профиля загружается с помощью:
bitmap = BitmapFactory.decodeStream((InputStream) new URL(imagepath).getContent());