Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何揉搓图像?_Java_Android_Android Intent - Fatal编程技术网

Java 如何揉搓图像?

Java 如何揉搓图像?,java,android,android-intent,Java,Android,Android Intent,我想摩擦图像。实际上,我有两个图像,一个在前景,另一个在背景,当我摩擦图像时,背景图像将不得不来如何做?我在这里发现了很多,但还不能得到解决方案。所以有人请帮我解决这个问题。 我试过这个: public class MainActivity extends Activity { ImageView img; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我想摩擦图像。实际上,我有两个图像,一个在前景,另一个在背景,当我摩擦图像时,背景图像将不得不来如何做?我在这里发现了很多,但还不能得到解决方案。所以有人请帮我解决这个问题。 我试过这个:

public class MainActivity extends Activity {

ImageView img;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.activity_main);
    // img = (ImageView) findViewById(R.id.img);
    //
    // new Panel(this);
    setContentView(new Panel(this));

}

class Panel extends View {

    private Bitmap mBitmap;
    private Canvas mCanvas;
    private Path mPath;
    private Paint mPaint;
    Bitmap bitmap;
    Canvas pcanvas;
    int x = 0;
    int y = 0;
    int r = 0;

    public Panel(Context context) {
        super(context);

        Log.v("Panel", ">>>>>>");

        setFocusable(true);
        setBackgroundColor(Color.MAGENTA);

        // setting paint
        mPaint = new Paint();
        mPaint.setAlpha(1);
        mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
        mPaint.setAntiAlias(true);

        // getting image from resources
        Resources r = this.getContext().getResources();

        Bitmap bm = BitmapFactory.decodeResource(getResources(),
                R.drawable.verse);

        // converting image bitmap into mutable bitmap

        // bitmap = Bitmap.createBitmap(295, 260, Config.ARGB_8888);
        bitmap = Bitmap.createBitmap(185, 120, Config.ARGB_8888);
        pcanvas = new Canvas();
        pcanvas.setBitmap(bitmap); // drawXY will result on that Bitmap
        pcanvas.drawBitmap(bm, 0, 0, null);

    }

    @Override
    protected void onDraw(Canvas canvas) {

        // draw a circle that is erasing bitmap
        // pcanvas.drawCircle(x, y, r, mPaint);
        pcanvas.drawColor(color.transparent);
        canvas.drawBitmap(bitmap, 0, 0, null);

        super.onDraw(canvas);

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {

        // set paramete to draw circle on touch event
        x = (int) event.getX();
        y = (int) event.getY();

        r = 20;
        // Atlast invalidate canvas
        invalidate();
        return true;
    }

}
}

您可能希望尝试使用/,此线程可能会帮助您:

要硬设置可以使用的颜色

int[] pix=new int[bitmap.getWidth()*bitmap.getHeight()];
bitmap.getPixels(pix, 0, 0, bitmap.getWidth(), bitmap.getHeight);

// do some processing here
// possible set color of some pixels to Color.TRANSPARENT

bitmap.setPixels(pix, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());

你能告诉我在你的链接中你提供给我的代码中我应该把我的图像放在哪里吗?对不起,这可能现在可以工作了。但是你可以将像素设置为透明