一回PCへマウントして、アンマウントしたり、OS自体を再起動したりすれば見れるんですけども。 なんでしょうか。これは。
でも、touch2pixelとかはちゃんと保存した後もすぐ見れるんですよね。これがまた。
なにか特別な保存方法があるんだろうかー。
って、調べてみたら。
ContentResolverってので登録しなきゃいけないんですね。 サムネイル絡みかと思ってたら、こんなのがあるとは・・・。
一応コード
// 保存先を取得 String status = Environment.getExternalStorageState(); File fout = null; if (!status.equals(Environment.MEDIA_MOUNTED)) { // SDカードがマウントされてないので、システムの使える場所に保存 fout = getContext().getFilesDir(); } else { // SDカードがマウントされているので、勝手にフォルダ作成 fout = new File("/sdcard/ciasom/"); fout.mkdirs(); } File fname = new File(fout ,"/ciasom" + getDate() + ".png"); FileOutputStream fos = new FileOutputStream(fname); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); //メディアに登録作業が必要らしい。 ContentValues values = new ContentValues(); ContentResolver contentResolver = getContext().getContentResolver(); values.put(Images.Media.MIME_TYPE, "image/png"); values.put(Images.Media.DATE_MODIFIED,System.currentTimeMillis()/1000); values.put(Images.Media.SIZE, fname.length()); values.put(Images.Media.TITLE, fname.getName()); values.put(Images.Media.DATA, fname.getPath()); contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);これは今作っている可逆モザイクアプリのソースそのままぶっこぬいてきました。
これまたはまったのが、Images.Media.DATE_MODIFIED には更新時間を入れるんだけど、ちょっとぐぐると
「System.currentTimeMillis()」が平気で指定されてるところ。
でも、これで保存すると、2037年とかになっちゃうんですよな。
ここで指定するのは1970年1月1日からの~ってとこまでは一緒なんだけど、「秒数」を入れるらしい。
んで、System.currentTimeMillis()は1970年起点の「ミリ秒」なので、時間が狂う。と。
ちゅーわけで、/1000が要るわけです。 ふむん。
完成が近づいてきたぜー
0 件のコメント:
コメントを投稿