ビューをサムネイル表示

ウェブブラウザなどであるサイトを開いた後にページ一覧を見るとページのサムネイルが表示されていることがあります。

これはウェブブラウザなどのビューが描画している中身(画像)を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インスタンスを削除し、setDrawingEnabletrueを渡すことで現在ビューに描画されている内容を取得するという方法をとっています。

このようにビューのスナップショットをとるときは毎回この2ステップを行わなければならず、setDrawingEnabletrueを渡しておくだけではそれを実行した直後のビューのスナップしか取得できないので注意が必要です。

以上、ビューのスナップショットを撮る方法でした。では、また!

関連項目
プライバシーポリシー