안드로이드 개발 질문/답변
(글 수 45,052)
커니님의 블로그에서 본 뷰에 표시되는 내용 캡쳐하는 소스인데요
captureButton.setOnClickListener(this);
public void onClick(View v) {
container.buildDrawingCache();
Bitmap captureView = container.getDrawingCache();
FileOutputStream fos;
try {
fos = new FileOutputStream(Environment.getExternalStorageDirectory().toString()+"/capture.jpeg");
captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Captured!", Toast.LENGTH_LONG).show();
}위와 같이 버튼을 눌러서 하지 않고옵션메뉴를 클릭해서 하려는데 무엇이 문제인지 모르겠습니다 ㅠㅠ
R.id.main 으로 하지 않고 new MyView(this) 로 해서 버튼을 만들수가 없거든요
MyView 전체를 캡쳐하고 싶은데 이부분을 어떻게 처리해야 할지요 ㅠㅠ
아래와 같이 했더니 되지 않습니다
case문 부분을 봐주세요ㅠㅠ
public class Main extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
public class MyView extends View {
public MyView(Context context) {
super(context);
}
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.gingerdroid);
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(bm, 0, 0, null);
}
}
private static final int SAVE_MENU_ID = Menu.FIRST;
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, SAVE_MENU_ID, 0, "Save").setShortcut('3', 'c');
return true;
}
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case SAVE_MENU_ID:
View MyView = new MyView(null);
MyView.buildDrawingCache();
Bitmap captureView = MyView.getDrawingCache();
FileOutputStream fos;
try {
fos = new FileOutputStream(Environment.getExternalStorageDirectory().toString()+"/capture2.jpeg");
captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Captured!", Toast.LENGTH_LONG).show();
return true;
}
return super.onOptionsItemSelected(item);
}
}


