¿Cómo cambiar la opacidad de un bitmap?

Tengo un bitmap:

Bitmap bitmap = BitmapFactory.decodeFile("some/arbitrary/path/image.jpg"); 

Pero no voy a mostrar la imagen al usuario. Quiero que el alfa sea 100 (de 255). Si esto no es posible, ¿puedo establecer la opacidad del Bitmap de Bitmap ?

    También puedes probar BitmapDrawable en lugar de Bitmap . Si esto es útil para usted, depende de la forma en que use el bitmap …

    Editar

    Como comentarista le preguntó cómo puede almacenar el bitmap con alfa, aquí hay un código:

     // lets create a new empty bitmap Bitmap newBitmap = Bitmap.createBitmap(originalBitmap.getWidth(), originalBitmap.getHeight(), Bitmap.Config.ARGB_8888); // create a canvas where we can draw on Canvas canvas = new Canvas(newBitmap); // create a paint instance with alpha Paint alphaPaint = new Paint(); alphaPaint.setAlpha(42); // now lets draw using alphaPaint instance canvas.drawBitmap(originalBitmap, 0, 0, alphaPaint); // now lets store the bitmap to a file - the canvas has drawn on the newBitmap, so we can just store that one // please add stream handling with try/catch blocks FileOutputStream fos = new FileOutputStream(new File("/awesome/path/to/bitmap.png")); newBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); 

    Por lo que yo sé, la opacidad u otros filtros de color no se pueden establecer en el bitmap en sí. Deberá configurar el alfa cuando use la imagen:

    Si está utilizando ImageView, hay ImageView.setAlpha () .

    Si está utilizando un canvas, entonces necesita usar Paint.setAlpha () :

     Paint paint = new Paint(); paint.setAlpha(100); canvas.drawBitmap(bitmap, src, dst, paint); 

    Además, incorporando la respuesta de WarrenFaith, si usará el bitmap donde se requiere un dibujo , puede usar BitmapDrawable.setAlpha () .

     Bitmap bgr = BitmapFactory.decodeResource(getResources(),R.drawable.main_logo_2); Paint transparentpainthack = new Paint(); transparentpainthack.setAlpha(100); canvas.drawBitmap(bgr, 0, 0, transparentpainthack); 
     public Bitmap makeTransparent(Bitmap src, int value) { int width = src.getWidth(); int height = src.getHeight(); Bitmap transBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(transBitmap); canvas.drawARGB(0, 0, 0, 0); // config paint final Paint paint = new Paint(); paint.setAlpha(value); canvas.drawBitmap(src, 0, 0, paint); return transBitmap; } 

    https://dzone.com/articles/adjusting-opacity-android propone:

     /** * @param bitmap The source bitmap. * @param opacity a value between 0 (completely transparent) and 255 (completely * opaque). * @return The opacity-adjusted bitmap. If the source bitmap is mutable it will be * adjusted and returned, otherwise a new bitmap is created. */ private Bitmap adjustOpacity(Bitmap bitmap, int opacity) { Bitmap mutableBitmap = bitmap.isMutable() ? bitmap : bitmap.copy(Bitmap.Config.ARGB_8888, true); Canvas canvas = new Canvas(mutableBitmap); int colour = (opacity & 0xFF) < < 24; canvas.drawColor(colour, PorterDuff.Mode.DST_IN); return mutableBitmap; } 

    Tenga en cuenta que con DST_IN puede modificar (en lugar de restablecer) la transparencia de una imagen ya transparente, es decir, puede hacer que la imagen sea cada vez más transparente.

    Si está utilizando un Drawable para mostrar la imagen, puede cambiar el alfa de la siguiente manera:

     private Drawable mTriangle; mTriangle = context.getResources().getDrawable(R.drawable.triangle_arrow_for_radar); ... protected void onDraw(Canvas canvas) { // Draw the triangle arrow float imageTargetWidth = getWidth() / 15; float scale = mTriangle.getIntrinsicWidth() / imageTargetWidth; int imgWidth = (int)(imageTargetWidth); int imgHeight = (int)(mTriangle.getIntrinsicHeight() / scale); if (mTriangle != null) { mTriangle.setBounds(getWidth() / 2 - imgWidth / 2, getHeight() / 2 - imgHeight / 2, getWidth() / 2 + imgWidth / 2, getHeight() / 2 + imgHeight / 2); mTriangle.setAlpha(150); // from (transparent) to 255 (opaque) mTriangle.draw(canvas); } }