Я занимаюсь разработкой приложения для Android, перетаскивая стикер и меняя размер стикера после захвата изображения.У меня есть проблема с изменением положения стикера после сохранения изображения. После сохранения он сдвигается почти на 20 dp вниз.
Я использую https://github.com/siralam/CameraViewPlus для камеры2.и https://github.com/wuapnjie/StickerView для наклейки.
вот моя функция - нарисовать наклейку и сохранить.
downloadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ICallback callback = new ICallback() {
@Override
public void done(Exception e) {
if (e == null) {
DebugLog.e("onImageSavedCallback: image saved!");
//showCustomDialog(layoutView);
// closeButton.performClick();
showCustomDialog();
cameraView.start();
} else {
DebugLog.e("onImageSavedCallback: error saving image: " + e.getMessage());
showSnackBar("Error saving image", Snackbar.LENGTH_SHORT);
}
}
};
stickerView.setLocked(true);
stickerView.invalidate();
Bitmap newBitmap = null;
Bitmap bitmap = CommonMethods.getBitmapFromView(stickerView);
try {
Bitmap.Config config = imageBitmap.getConfig();
if (config == null) {
config = Bitmap.Config.ARGB_8888;
}
newBitmap = Bitmap.createBitmap(imageBitmap.getWidth(), imageBitmap.getHeight(), config);
Canvas canvas = new Canvas(newBitmap);
// Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(imageBitmap, 0, 0, null);
canvas.drawBitmap(bitmap, 0, 0, null);
} catch (Exception ex) {
ex.printStackTrace();
}
int t = 1;
ImageSaver imageSaver = new ImageSaver(
newBitmap,
getExternalFilesDir(null),
callback,
t
);
mBackgroundHandler.post(imageSaver);
}
});
У меня проблема с изменением положения стикера при сохранении изображения.изображение будет отображаться вне границ, когда тип масштаба изображения будет центральным кадром.вырубка угловой части.
Первое изображение перед сохранением.Второе изображение после сохранения.