5

私はAndroidでビューをビットマップに変換するために次の行を使用しています。

view.setDrawingCacheEnabled(true);
Bitmap b= view.getDrawingCache(); 

ビットマップに変換しているときに値が表示されていますが、ビットマップ値がnullになっています。

4

4 に答える 4

6

アクティビティ クラス このクラスでは、レイアウト (ビュー) を画像に変換します。

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class ImageActivity extends Activity {

    LinearLayout layout=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_convert);
        layout=(LinearLayout)findViewById(R.id.layout);
        ((ImageView)findViewById(R.id.ImageView01)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Bitmap map=ConvertToBitmap(layout);
                Log.v("BitmapObject", map.toString());
            }
        });       
    }

    protected Bitmap ConvertToBitmap(LinearLayout layout) {
        Bitmap map;
        layout.setDrawingCacheEnabled(true);
        layout.buildDrawingCache();
        return map=layout.getDrawingCache();
    }
}
于 2012-12-15T06:13:12.743 に答える
3

以下のコードを使用してください: yourview 値を置き換えるだけです

YourView view = (YourView )findViewById(R.id.yourViewId);

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bm = view.getDrawingCache();

参照

于 2012-12-13T07:38:46.413 に答える
1

これを試して :

LinearLayout view1 = (LinearLayout) findViewById(R.id.linear1);
ImageView my_image = (ImageView) findViewById(R.id.my_imageView);

Bitmap b = Bitmap.createBitmap(view1.getWidth(), view1.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
view1.draw(c);

my_image.setImageBitmap(b); 

お役に立てば幸いです。

ありがとう。

于 2012-12-13T07:36:58.527 に答える
0

これはうまくいくかもしれません

public static Bitmap getBitmapFromView(View view) {
   Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
   Canvas canvas = new Canvas(returnedBitmap);
   view.layout(0, 0, view.getLayoutParams().width, view.getLayoutParams().height);
   view.draw(canvas);
   return returnedBitmap;
}
于 2012-12-13T07:37:56.583 に答える