Мне нужно разрешить пользователю перемещать изображение на экране и изменять его размер.
Эта часть, которую я уже выполнил.
Часть, которую я не могу понять, это то, как, сделав снимок, заморозить подвижное / изменяемое размер изображения на фотоизображении, чем объединитьдва вместе, чтобы сделать 1 Bitmap.
У меня действительно нет никаких «фрагментов» кода для публикации.Я просто надеюсь, что некоторые люди, возможно, уже сталкивались с этим и могли бы пролить свет.
РЕДАКТИРОВАТЬ.Я понимаю, что когда я делаю снимок, изображение уже застыло на экране.В этом случае я фиксирую расположение предметов на холсте.Что мне нужно сделать, так это взять холст, на котором уже что-то нарисовано, и каким-то образом наложить его на другой холст, которому я тоже присвоил фотографию.
РЕДАКТИРОВАТЬ # 2
ОК, дамы и господа,Я понял.Вот код для наложения на камеру (как описано mmeyer.)
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
Context ct = new Context;
RelativeLayout relativeview = new RelativeLayout(ct);
if (imageData != null) {
Context ct = HagsCamera.this;
new Intent(ct, PreviewandSend.class);
Bitmap photo = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
int picwidth= (photo.getWidth()/2);
int picheight = (photo.getHeight()/2);
Bitmap photocopy = Bitmap.createScaledBitmap(photo, picwidth, picheight, false);
Canvas c2 = crv.canvastoreturn;
c2.setBitmap(photocopy);
//photo.recycle();
ImageView newImage = new ImageView(ct);
relativeview.addView(newImage);
relativeview.draw(c2);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
photo.getWidth()/2, photo.getHeight()/2);
relativeview.setLayoutParams(lp);
Удачи всем вам.Я надеюсь, что это поможет сэкономить много головной боли.
Вкратце: создайте растровое изображение своей фотографии.
Создайте холст для наложения и подбросьте туда свои вещи
Получите копию наложенияcanvas
.setBitmap () это canvas и установите его в свое фото-растровое изображение.
Создайте RelativeLayout и добавьте к нему новый ImageView.
Нарисуйте свой холст на ImageView.
, затем выясните свойПараметры макета для вашего RelativeLayout.
Теперь, когда я думаю об этом, может быть, вы можете просто установить холст верхнего слоя на растровое изображение вашей фотографии ... и просто сохранить его ...... Вы можете проверить это самостоятельно.