私はLinearLayoutを持っています画像で変換したいのですが、背景が透明にならないビットマップになっていました。私はそれを画像PNGに変換して、これを行い、アルファがゼロに等しい透明な背景を当てることは部分的にしか透過的ではありません。画像は、紙の部分が透明である場合には、紙の白のみで完全に透明になります。私はiTextを使ってイメージを作成しました。透明な背景を維持しながら画像内のLinearLayoutを変換する方法
mLinearLayout.setDrawingCacheEnabled(true);
mLinearLayout.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
mLinearLayout.layout(0, 0, 642, 400);
mLinearLayout.buildDrawingCache(true);
mBitmapLayoutPreview = Bitmap.createBitmap(mLinearLayout.getDrawingCache());
mLinearLayout.setDrawingCacheEnabled(false); //lose transparency
ByteArrayOutputStream stream = new ByteArrayOutputStream();
mBitmapLayoutPreview.compress(Bitmap.CompressFormat.PNG, 100 , stream);
Canvas canvas = new Canvas(mBitmapLayoutPreview);
canvas.drawColor(Color.TRANSPARENT);
final Paint paint = new Paint();
paint.setAlpha(0);
canvas.drawBitmap(mBitmapLayoutPreview, 0, 0, paint);
Image myImg = Image.getInstance(stream.toByteArray()); //is only partially transparent
部分的な透明性が色空間= 3によって発生していることがわかりました。私はmyImgです。私はキャンバスに利用されていない
この行」canvas.drawBitmapコメント場合(mBitmapLayoutPreviewです、0、0、paint); "、線形レイアウトは透明か、すでに部分的に透明ですか? – MyWay
はすでに部分的に透明です –