根据网格设置图像

喜帕希亚

目前我正在制作用于裁剪图像的自定义视图该视图基本上是一个网格,它定义了裁剪区域,如 3x3,3x2,3x1 并将网格基本上从 3x3 更改为 3x2 或分别在单击按钮时更改网格和一个查看图像所在位置的触摸图像并根据网格调整图像(自定义视图)

现在的问题是有些图像在 3x3 中没有得到调整,大部分图像都得到了调整

在这里查看我的应用程序的图像

我的应用程序的图像

它实际上应该是什么样子

它实际上应该是什么

这就是问题所在,即使在 3x2,3x1 图像中也被切割,我认为问题出在我的观察者身上,我在其中放置了代码来调整图像

private class CObserver implements ViewTreeObserver.OnGlobalLayoutListener {

    public void onGlobalLayout() {
        MainActivity.this.gridLineView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        GridLineView.gridHeight = MainActivity.this.gridLineView.getGridHeight();
        Uri parse = Uri.parse(MainActivity.this.getIntent().getExtras().getString("imageUri"));
        Log.e("selectedImage", parse.toString());
        Point point = new Point();
        MainActivity.this.getWindowManager().getDefaultDisplay().getSize(point);
        int i = point.x;
        int i2 = point.y;
        if (i == 0 || i2 == 0) {
            DisplayMetrics displayMetrics = new DisplayMetrics();
            MainActivity.this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            i = displayMetrics.widthPixels;
            i2 = displayMetrics.heightPixels;
        }
        try {
            MainActivity mainActivity = MainActivity.this;
            Context context = MainActivity.this;
            double d = (double) i;
            i = (int) (d * 1.5d);
            Log.e("i",i+"");
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver() ,parse);
            Bitmap samplebitmap=scaleBitmap(bitmap,i,i2);
            //Bitmap samplebitmap = mainActivity.decodeSampledBitmapFromInputStream(context, parse, i, i2);
            //Bitmap samplebitmap = Bitmap.createScaledBitmap(bitmap,i,i2,false);
            MainActivity.this.origBitmap = samplebitmap;
            if (samplebitmap != null) {
                MainActivity.this.touchImageView.setImageBitmap(samplebitmap);
            }
        } catch (IOException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
    }
}

所以如果有人可以帮助我用我的代码来修复 3x3 中显示的图像,并在 3x2 网格中获得半幅图像

这是我的所有项目文件Project Files

阿卡什·帕尔

如果要根据屏幕大小动态绘制线条,则应在相机预览类中使用以下代码。

  @Override  
    protected void onDraw(Canvas canvas)  
    { 
        if(grid){
        //  Find Screen size first  
        DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();  
        int screenWidth = metrics.widthPixels;  
        int screenHeight = (int) (metrics.heightPixels*0.9);  

        //  Set paint options  
        paint.setAntiAlias(true);  
        paint.setStrokeWidth(3);  
        paint.setStyle(Paint.Style.STROKE);  
        paint.setColor(Color.argb(255, 255, 255, 255));  

        canvas.drawLine((screenWidth/3)*2,0,(screenWidth/3)*2,screenHeight,paint);
        canvas.drawLine((screenWidth/3),0,(screenWidth/3),screenHeight,paint);
        canvas.drawLine(0,(screenHeight/3)*2,screenWidth,(screenHeight/3)*2,paint);
        canvas.drawLine(0,(screenHeight/3),screenWidth,(screenHeight/3),paint);
        }
    } 

我们在上面的代码中试图做的是在你的代码中水平和垂直地绘制三条线,它们之间的间距均匀,@OnDraw 你试图绘制一个你不需要的圆,如问题中所述你也需要在相机预览类的构造函数中添加以下行:

this.setWillNotDraw(false);

下面的代码源:将图像分成几部分

public ArrayList<Bitmap> splitBitmap(Bitmap bitmap, int xCount, int yCount) {
    ArrayList<Bitmap> pieces = new ArrayList<>(piecesNumber);
    int width, height;
    width = bitmap.getWidth() / xCount;
    height = bitmap.getHeight() / yCount;
    for(int x = 0; x < xCount; ++x) {
        for(int y = 0; y < yCount; ++y) {
            pieces.add(Bitmap.createBitmap(bitmap, x * width, y * height, width, height));
        }
    }
    return pieces;
}

上面的代码将图像切成 9 等份

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据 if 语句设置网格视图的图像

来自分类Dev

根据内容大小设置网格高度

来自分类Dev

根据断点设置图像高度

来自分类Dev

如何根据屏幕尺寸调整网格图像的大小?

来自分类Dev

根据ajax响应设置图像内容

来自分类Dev

根据本地设置更改背景图像

来自分类Dev

Android根据宽度设置图像视图高度

来自分类Dev

样式化组件-根据道具设置网格模板

来自分类Dev

如何制作根据图像数量改变图像大小的响应式图像网格?

来自分类Dev

WPF将网格背景设置为资源图像

来自分类Dev

根据JSON中的图像数组对图像进行样式设置

来自分类Dev

设置图像大小限制并根据需要调整图像大小

来自分类Dev

如何为网格背景而不是网格中的控件设置图像的不透明度动画?

来自分类Dev

如何在Swift中根据图像的高度设置UITableViewCell Size

来自分类Dev

UICollectionview根据图像高度设置单元格高度

来自分类Dev

PHPExcel:根据图像设置行高(以像素为单位)

来自分类Dev

设置背景图像以根据视口大小进行覆盖

来自分类Dev

如何根据屏幕尺寸设置背景图像?

来自分类Dev

PHPExcel:根据图像设置行高(以像素为单位)

来自分类Dev

如何在Swift中根据图像的高度设置UITableViewCell Size

来自分类Dev

如何根据图像垂直条设置像素RGB值?(JavaScript)

来自分类Dev

在 Matlab 中根据图像大小保持(锁定)缩放或设置缩放

来自分类Dev

如何根据动态可绘制名称从 PNG 设置图像

来自分类Dev

如何根据Javascript变量在网页上设置图像的位置?

来自分类Dev

如何根据bootstrap网格系统使用angularjs指令设置height = width以获得平方div?

来自分类Dev

Altair:如何根据其最大值在小平面网格中对线条进行样式设置?

来自分类Dev

使用 asp.net 根据我的表值在网格中设置值

来自分类Dev

浏览本地磁盘中的图像,在“网格视图”列中设置并存储c:inetpub \ wwwroot?

来自分类Dev

使用fluid_styled_content(TS)为网格元素col中的图像设置maxImageWidth

Related 相关文章

  1. 1

    根据 if 语句设置网格视图的图像

  2. 2

    根据内容大小设置网格高度

  3. 3

    根据断点设置图像高度

  4. 4

    如何根据屏幕尺寸调整网格图像的大小?

  5. 5

    根据ajax响应设置图像内容

  6. 6

    根据本地设置更改背景图像

  7. 7

    Android根据宽度设置图像视图高度

  8. 8

    样式化组件-根据道具设置网格模板

  9. 9

    如何制作根据图像数量改变图像大小的响应式图像网格?

  10. 10

    WPF将网格背景设置为资源图像

  11. 11

    根据JSON中的图像数组对图像进行样式设置

  12. 12

    设置图像大小限制并根据需要调整图像大小

  13. 13

    如何为网格背景而不是网格中的控件设置图像的不透明度动画?

  14. 14

    如何在Swift中根据图像的高度设置UITableViewCell Size

  15. 15

    UICollectionview根据图像高度设置单元格高度

  16. 16

    PHPExcel:根据图像设置行高(以像素为单位)

  17. 17

    设置背景图像以根据视口大小进行覆盖

  18. 18

    如何根据屏幕尺寸设置背景图像?

  19. 19

    PHPExcel:根据图像设置行高(以像素为单位)

  20. 20

    如何在Swift中根据图像的高度设置UITableViewCell Size

  21. 21

    如何根据图像垂直条设置像素RGB值?(JavaScript)

  22. 22

    在 Matlab 中根据图像大小保持(锁定)缩放或设置缩放

  23. 23

    如何根据动态可绘制名称从 PNG 设置图像

  24. 24

    如何根据Javascript变量在网页上设置图像的位置?

  25. 25

    如何根据bootstrap网格系统使用angularjs指令设置height = width以获得平方div?

  26. 26

    Altair:如何根据其最大值在小平面网格中对线条进行样式设置?

  27. 27

    使用 asp.net 根据我的表值在网格中设置值

  28. 28

    浏览本地磁盘中的图像,在“网格视图”列中设置并存储c:inetpub \ wwwroot?

  29. 29

    使用fluid_styled_content(TS)为网格元素col中的图像设置maxImageWidth

热门标签

归档