The following code shows how to Create Image mask on Canvas.
Main Activity Java code
import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.os.Bundle; import android.widget.ImageView; /* w w w . ja v a 2 s. co m*/ public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView iv = new ImageView(this); Bitmap source = BitmapFactory.decodeResource(getResources(), R.drawable.dog); Bitmap mask = BitmapFactory.decodeResource(getResources(), R.drawable.triangle); Bitmap result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(result); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.BLACK); canvas.drawBitmap(mask, 0, 0, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(source, 0, 0, paint); paint.setXfermode(null); iv.setImageBitmap(result); setContentView(iv); } }