<< Android-Note
ビューをサムネイル表示
ウェブブラウザなどであるサイトを開いた後にページ一覧を見るとページのサムネイルが表示されていることがあります。
これはウェブブラウザなどのビューが描画している中身(画像)をBitmapインスタンスとして取得すれば簡単に実現できます。
例えばボタンが押された後にボタン自身のスナップショットをBitmapとして取得したいなら次のようなコードが書けます。
public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button snapButton = (Button) findViewById(R.id.snapButton); snapButton.setOnClickListener(new View.onClickListener() { public void onClick(View v) { v.destroyDrawingCache(); v.setDrawingCacheEnable(true); Bitmap snapShot = v.getDrawingCache(); //ボタン自身の画像を取得 } }); } }
ビューのスナップショットをとるにはgetDrawingCacheメソッドを呼び出します。
ただしこのメソッドを呼び出す前にdestroyDrawingメソッドで直前に保存されていたBitmapインスタンスを削除し、setDrawingEnableにtrueを渡すことで現在ビューに描画されている内容を取得するという方法をとっています。
このようにビューのスナップショットをとるときは毎回この2ステップを行わなければならず、setDrawingEnableにtrueを渡しておくだけではそれを実行した直後のビューのスナップしか取得できないので注意が必要です。
以上、ビューのスナップショットを撮る方法でした。では、また!
© Kaz