안드로이드 화면 캡춰 소스 : screenshot 함수, sd카드에 png 파일이 저장됨(android.permission.WRITE_EXTERNAL_STORAGE 권한필요)
- view 단위로 캡춰 가능 (view를 상속받은것들) :
- 전체 화면 캡춰 가능 : View capView = getWindow().getDecorView();
public class MyTestActivity extends Activity {
View capView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bt_capture = (Button)findViewById(R.id.bt_capture);
LinearLayout ly_main = (LinearLayout)findViewById(R.id.ly_main);
bt_capture.setOnClickListener(mClickListener);
capView = ly_main; // 리니어 레이아웃 캡춰
// capView = getWindow().getDecorView(); // 전체 화면 캡춰
}
View.OnClickListener mClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_capture:
try {
screenshot(capView);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
default:
break;
}
}
};
public void screenshot (View view) throws Exception{
view.setDrawingCacheEnabled(true);
Bitmap scrreenshot = view.getDrawingCache();
String filename = "screenshot.png";
try{
File f = new File(Environment.getExternalStorageDirectory(),filename);
f.createNewFile();
OutputStream outStream = new FileOutputStream(f);
scrreenshot.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.close();
}catch( IOException e){
e.printStackTrace();
}
view.setDrawingCacheEnabled(false);
}
}
'안드로이드 개발 팁' 카테고리의 다른 글
android 가로 스크롤 슬라이딩 메뉴(Sliding Menu) (3) | 2012.04.17 |
---|---|
안드로이드에서 강제로 터치 이벤트 발생시키기 (0) | 2012.04.16 |
안드로이드용 이클립스 세팅 절차 (0) | 2012.02.06 |
안드로이드 디자인 사이트 (0) | 2012.01.17 |
안드로이드 앱에서 시작시 간단하게 최신 버젼(version) 확인하고, 업데이트 요청 팝업 띄우기 (2) | 2011.12.29 |