簡體   English   中英

如何在android中自定義裁剪圖像?

[英]how can i custom crop an image in android ?

我有一個顯示圖像的活動,我可以縮放圖像並移動它,我在屏幕中央有一個矩形但不會移動,我希望這個矩形內的所有內容都能夠裁剪圖像, 我該怎么做 ?

我有一個僅用於矩形繪制的自定義類,這是我的代碼:

@Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
Rect mCropRectangle = new Rect();
        mCropRectangle.set(
                getLeft(),
                getTop()+(getBottom()+getTop())/6,
                getRight(),
                getBottom()-(getBottom()+getTop())/6
                );
}

您應該能夠使用 PorterDuff 來實現這一點。 我已經粘貼了一個示例,該示例將使用藍色蒙版裁剪大黃色背景。

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        //create a second canvas
        Bitmap mask = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(mask);

        Rect cropRect = new Rect(100, 100, 400, 400);

        Paint p = new Paint();
        p.setAntiAlias(true);
        p.setColor(Color.BLUE); //color doesn't matter
        c.drawRect(cropRect, p); //draw the crop rect first

        p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); //change transfer mode

        p.setColor(Color.YELLOW);//draw your original image/content here, pretty much whatever you wanted to draw
        c.drawRect(0, 0, getWidth(), getHeight(), p); 

        canvas.drawBitmap(mask, 0, 0, null); //draw the result back onto the canvas

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM