我目前正在开发一个应用程序,它允许用户在图像上添加贴纸(帽子、头发、眼镜等)。用户可以调整该贴纸的大小,也可以旋转该贴纸并移动。见图片。
我有贴纸,但如何将它们放在原始图像上并移动/旋转/放大它们以调整原始图像?
我目前正在开发一个应用程序,它允许用户在图像上添加贴纸(帽子、头发、眼镜等)。用户可以调整该贴纸的大小,也可以旋转该贴纸并移动。见图片。
我有贴纸,但如何将它们放在原始图像上并移动/旋转/放大它们以调整原始图像?
您可以查看以下链接以获取stickerView
I found a good result at http://code.google.com/p/android-multitouch-controller/. Which handles 3 in 1 facility. On Multi-Touch, you can pan your image, you can scale your image and at the same time you can also rotate your image. And you can add number of stickers as you want.
要放大/缩小图像,您可以尝试以下代码:
yourImageView.setLayoutParams(new GridView.LayoutParams(newWidthImage, newHeightImage));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
希望这有帮助。
第一步:下载此链接库。 https://github.com/nimengbo/StickerView
第二:(StickerView,BubblePropertyModel,StickerPropertryModel.java 这三个文件粘贴你的项目)。
第三步:在 MainActivity 文件之后的代码下方:
注意:mainlayout 是(Relativelayout 对象)
final StickerView stickerView21 = new StickerView(this);
stickerView21.setImageResource(R.drawable.fall_9);
stickerView21.setOperationListener(new StickerView.OperationListener() {
@Override
public void onDeleteClick() {
mViews.remove(stickerView21);
mainLayout.removeView(stickerView21);
}
@Override
public void onEdit(StickerView stickerView)
{
}
@Override
public void onTop(StickerView stickerView) {
int position = mViews.indexOf(stickerView);
if (position == mViews.size() - 1) {
return;
}
StickerView stickerTemp = (StickerView) mViews.remove(position);
mViews.add(mViews.size(), stickerTemp);
}
});
RelativeLayout.LayoutParams l11= new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
mainLayout.addView(stickerView21, l11);
mViews.add(stickerView21);
查看他们尝试实现在箭头单击时拉伸图像并删除它的功能的 blogspot,您还可以使用手势在屏幕上移动图像。
拖放图像还可以查看 DragDropImage 的演示
您也可以下载博客中提到的源代码。