
我想实现一个裁剪功能,我希望在imageVIEw上有一个小矩形.矩形应该是静态的,我想移动图像并在矩形区域内裁剪图像.然后将矩形内的图像作为裁剪图像获取.
我尝试使用Bitmap作为参数创建一个画布,但它不起作用.我已经尝试了很多来搜索如何做到这一点.但无法在任何地方找到它.请帮忙..
Bitmap bitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.indoor); Bitmap mutBitmap = Bitmap.createBitmap(200, 400,bitmap.getConfig()); Canvas canvas = new Canvas(mutBitmap); Paint paint = new Paint(); paint.setcolor(color.BLACK); paint.setStyle(Paint.Style.FILL_AND_stroke); paint.setstrokeWIDth(10); float leftx = 20; float topy = 20; float rightx = 50; float bottomy = 100; canvas.drawRect(leftx, topy, rightx, bottomy, paint);我正在使用上面的代码,但是在imageVIEw上没有绘制矩形.
解决方法:
您需要将绘图代码放在视图的onDraw()方法中才能显示它.您应该创建一个继承自imageVIEw的自定义类,然后重写onDraw()方法,如下所示:
class DrawVIEw extends ImageVIEw { public DrawVIEw(Context context) { super(context); } DrawVIEw(Context context, AttributeSet attrs) { super(context, attrs); } DrawVIEw(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @OverrIDe public voID onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setcolor(color.BLACK); paint.setStyle(Paint.Style.FILL_AND_stroke); paint.setstrokeWIDth(10); float leftx = 20; float topy = 20; float rightx = 50; float bottomy = 100; canvas.drawRect(leftx, topy, rightx, bottomy, paint); }}现在在您的布局中,包括DrawVIEw而不是您当前的ImageVIEw
总结以上是内存溢出为你收集整理的java – 在ImageVIew上绘制矩形全部内容,希望文章能够帮你解决java – 在ImageVIew上绘制矩形所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)