java– 在ImageVIew上绘制矩形

java– 在ImageVIew上绘制矩形,第1张

概述我想实现一个裁剪功能,我希望在imageView上有一个小矩形.矩形应该是静态的,我想移动图像并在矩形区域内裁剪图像.然后将矩形内的图像作为裁剪图像获取.我尝试使用Bitmap作为参数创建一个画布,但它不起作用.我已经尝试了很多来搜索如何做到这一点.但无法在任何地方找到它.请帮忙..

我想实现一个裁剪功能,我希望在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上绘制矩形所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1097762.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存