2016-05-16 5 views
3

私は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です。私はキャンバスに利用されていない

+0

この行」canvas.drawBitmapコメント場合(mBitmapLayoutPreviewです、0、0、paint); "、線形レイアウトは透明か、すでに部分的に透明ですか? – MyWay

+0

はすでに部分的に透明です –

答えて

1

PDFファイルを作成するために、iTextのを使用していますが、私はBackgroundColor Transparent設定:

mLinearLayout.setBackgroundColor(Color.TRANSPARENT); 
    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); 
    Log.i(TAG, "The color of background is: " +mCardLayout.getAlpha()); 

    mBitmapLayoutPreview = Bitmap.createBitmap(mLinearLayout.getDrawingCache()); 


    mLinearLayout.setDrawingCacheEnabled(false); // clear drawing cache 

mBitmapLayoutPreviewは私LinearLayout背景を持つTransparent

+1

Cool !!!!とニース!! – Piyush

+0

アンドロイドアプリを開発するのにどれだけの時間がかかりますか? – Piyush

+0

約2年。 –

関連する問題