
AndroidではView単位でキャプチャを取得します。
まずViewのsetDrawingCacheEnabledをtrueにしてキャプチャを取れる様にします。
その後、getDrawingCacheでキャプチャを取得し、Bitmapに変換します。
キャプチャを取得した後は、setDrawingCacheEnabledをfalseに戻します。
private View view1;
・・・・・・・・・・・・・・・・・
view1.setDrawingCacheEnabled(true);
Bitmap bmp = Bitmap.createBitmap(view1.getDrawingCache());
view1.setDrawingCacheEnabled(false);
サンプルコード全体は以下の様になります。
package net.studioks.sample1;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class sample1 extends Activity {
private TextView textView1;
private ImageView imageView1;
private Button button1;
RelativeLayout relativeLayout;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
relativeLayout = new RelativeLayout(this);
setContentView(relativeLayout);
textView1.setText("Test");
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(200,100);
params1.leftMargin = 10;
params1.topMargin = 0;
relativeLayout.addView(textView1,params1);
imageView1.setScaleType(ImageView.ScaleType.FIT_XY);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(400,400);
params2.leftMargin = 10;
params2.topMargin = 110;
relativeLayout.addView(imageView1,params2);
button1.setText("Get Image");
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView1.setDrawingCacheEnabled(true);
Bitmap bmp = Bitmap.createBitmap(textView1.getDrawingCache());
textView1.setDrawingCacheEnabled(false);
imageView1.setImageBitmap(bmp);
}
});
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(400,400);
params3.leftMargin = 10;
params3.topMargin = 515;
relativeLayout.addView(button1,params3);
}
}
Write a comment