カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

スクリーンショットの保存

Androidでは、画面のキャプチャはできないようですが、ImageViewのキャプチャならキャッシュを利用してできるようです。
ローカルにPNG形式で保存するサンプルです。

private boolean ScreenShot(ImageView imgView, String filename) {
    try {
        FileOutputStream out = openFileOutput(filename, MODE_PRIVATE);

        imgView.setDrawingCacheEnabled(false); //タイミングを確実にするために一旦falseに
        imgView.setDrawingCacheEnabled(true);

        Bitmap bmp = Bitmap.createBitmap(imgView.getDrawingCache());
        bmp.compress(CompressFormat.PNG, 100, out);

        out.close();

        return true;

    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
}

SDカードに保存する場合
続きを読む…»

9,693 views

FilenameFilter

ファイル名に正規表現でフィルターをかけます

FilenameFilter fFilter = new FilenameFilter() {
    @Override
    public boolean accept(File dir, String filename) {
        return filename.matches(".+.jpg"); //正規表現で検索
    }
};

続きを読む…»

5,074 views

画像のクロスフェード

レイヤーをクロスフェードさせて画像を入れ替えます。
動的に実行する場合はコンストラクターに配列で渡します。

TransitionDrawable(Drawable[] layers)

main.xml

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image1"  />
    <item android:drawable="@drawable/image2"  />
</transition>

続きを読む…»

4,958 views

フォルダ選択ダイアログ

アラートダイアログを使って、ファイル選択にも応用できる参照機能
こちらのサイトを参考にさせていただきました。
http://d.hatena.ne.jp/Silent-Bob/20110705

・ルートフォルダーを設定
指定したフォルダー階層より上に上がれないようにします。

private static final String ROOT_PATH = 
    Environment.getExternalStorageDirectory().getPath() + "/";

続きを読む…»

10,640 views

音楽ファイルの再生

MediaPlayer mediaPlayer = new MediaPlayer();
String path = "";

mediaPlayer.setLooping(true); //ループ再生の設定

try {
	mediaPlayer.setDataSource(path);
} catch (IllegalArgumentException e) {
	e.printStackTrace();
} catch (IllegalStateException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

try {
	mediaPlayer.prepare();
} catch (IllegalStateException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

mediaPlayer.start(); //再生開始
mediaPlayer.pause(); //一時停止
mediaPlayer.stop();  //停止

続きを読む…»

6,275 views