<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Android%2F%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%2Fsd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98</id>
		<title>Android/ストレージ/sdカードに画像保存 - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Android%2F%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%2Fsd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98"/>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Android/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8/sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98&amp;action=history"/>
		<updated>2026-04-25T01:20:17Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wiki.nonip.net/index.php?title=Android/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8/sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98&amp;diff=7203&amp;oldid=prev</id>
		<title>2018年11月21日 (水) 03:10にAdminによる</title>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Android/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8/sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98&amp;diff=7203&amp;oldid=prev"/>
				<updated>2018-11-21T03:10:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←前の版&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2018年11月21日 (水) 03:10時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;  }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==open failed: EACCES (Permission denied) エラーが出る場合==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;android6以上の場合はmanifest宣言以外にアプリ側でも許可が必要となっている&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;設定方法：設定/アプリ/使用アプリを選択/許可/ストレージ&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.nonip.net/index.php?title=Android/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8/sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98&amp;diff=755&amp;oldid=prev</id>
		<title>127.0.0.1: ページの作成:「*AndroidManivest.xmlに追加  &lt;&lt;nowiki /&gt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;/&gt;  *src/info/nonip/android/lib/entity/SdcardEntity.java...」</title>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Android/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8/sd%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E7%94%BB%E5%83%8F%E4%BF%9D%E5%AD%98&amp;diff=755&amp;oldid=prev"/>
				<updated>2015-05-19T18:16:45Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成:「*AndroidManivest.xmlに追加  &amp;lt;&amp;lt;nowiki /&amp;gt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;  *src/info/nonip/android/lib/entity/SdcardEntity.java...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;*AndroidManivest.xmlに追加&lt;br /&gt;
 &amp;lt;&amp;lt;nowiki /&amp;gt;uses-permission android:name=&amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*src/info/nonip/android/lib/entity/SdcardEntity.java&lt;br /&gt;
 package info.nonip.android.lib.entity;&lt;br /&gt;
 import android.graphics.Bitmap;&lt;br /&gt;
 import android.graphics.BitmapFactory;&lt;br /&gt;
 import android.os.Environment;&lt;br /&gt;
 import android.util.Log;&lt;br /&gt;
 import java.io.File;&lt;br /&gt;
 import java.io.FileOutputStream;&lt;br /&gt;
 import java.io.IOException;&lt;br /&gt;
 import java.util.ArrayList;&lt;br /&gt;
 /**&lt;br /&gt;
  * SDカードエンティティ&lt;br /&gt;
  *&lt;br /&gt;
  * @ex&lt;br /&gt;
  * SdcardEntity sdcard = SdcardEntity.getInstance();&lt;br /&gt;
  * sdcard.setDir(&amp;quot;hoge&amp;quot;);// sdカード内にhogeディレクトリを作成&lt;br /&gt;
  * sdcard.saveBitmapPng(bitmap, &amp;quot;fuga&amp;quot;);&lt;br /&gt;
  */&lt;br /&gt;
 public class SdcardEntity {&lt;br /&gt;
     // このクラスに唯一のインスタンス&lt;br /&gt;
     private static SdcardEntity singleton = new SdcardEntity();&lt;br /&gt;
     // SDカードrootpath&lt;br /&gt;
     private File mSdDirPath;&lt;br /&gt;
     // dirパス&lt;br /&gt;
     private String mDirPath;&lt;br /&gt;
     // newでのインスタンス生成防止&lt;br /&gt;
     private SdcardEntity() {&lt;br /&gt;
         // sdcardフォルダを指定&lt;br /&gt;
         mSdDirPath = Environment.getExternalStorageDirectory();&lt;br /&gt;
     }&lt;br /&gt;
     // インスタンス取得メソッド&lt;br /&gt;
     public static SdcardEntity getInstance() {&lt;br /&gt;
         return singleton;&lt;br /&gt;
     }&lt;br /&gt;
     // dirpath設定&lt;br /&gt;
     public void setDirPath(String dir) {&lt;br /&gt;
         mDirPath = mSdDirPath + &amp;quot;/&amp;quot; + dir;&lt;br /&gt;
         // dir生成&lt;br /&gt;
         mkdir();&lt;br /&gt;
     }&lt;br /&gt;
     // png画像保存&lt;br /&gt;
     public String saveBitmapPng(Bitmap mBitmap, String filepath) {&lt;br /&gt;
         String uristr = null;&lt;br /&gt;
         try {&lt;br /&gt;
             // 保存処理開始&lt;br /&gt;
             FileOutputStream fos = null;&lt;br /&gt;
             // fos = new FileOutputStream(new File(sdpath, fileName.format(mDate) + &amp;quot;.png&amp;quot;));&lt;br /&gt;
             // 保存uri&lt;br /&gt;
             uristr = mDirPath + &amp;quot;/&amp;quot;+ filepath + &amp;quot;.png&amp;quot;;&lt;br /&gt;
             fos = new FileOutputStream(new File(uristr));&lt;br /&gt;
             // jpegで保存&lt;br /&gt;
             // mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);&lt;br /&gt;
             mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);&lt;br /&gt;
             // 画像解放&lt;br /&gt;
             mBitmap = null;&lt;br /&gt;
             // 保存処理終了&lt;br /&gt;
             fos.close();&lt;br /&gt;
         } catch (IOException e) {&lt;br /&gt;
 Log.e(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;&amp;quot; + e.toString());&lt;br /&gt;
         }&lt;br /&gt;
 Log.d(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;sdcard save=&amp;quot; + uristr);&lt;br /&gt;
         return uristr;&lt;br /&gt;
     }&lt;br /&gt;
     // jpg画像保存&lt;br /&gt;
     public String saveBitmapJpg(Bitmap mBitmap, String filepath) {&lt;br /&gt;
         String uristr = null;&lt;br /&gt;
         try {&lt;br /&gt;
             // 保存処理開始&lt;br /&gt;
             FileOutputStream fos = null;&lt;br /&gt;
             // 保存uri&lt;br /&gt;
             uristr = mDirPath + &amp;quot;/&amp;quot;+ filepath + &amp;quot;.jpg&amp;quot;;&lt;br /&gt;
             fos = new FileOutputStream(new File(uristr));&lt;br /&gt;
             mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);&lt;br /&gt;
             // 画像解放&lt;br /&gt;
             mBitmap = null;&lt;br /&gt;
             // 保存処理終了&lt;br /&gt;
             fos.close();&lt;br /&gt;
         } catch (IOException e) {&lt;br /&gt;
 Log.e(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;&amp;quot; + e.toString());&lt;br /&gt;
         }&lt;br /&gt;
 Log.d(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;sdcard save=&amp;quot; + uristr);&lt;br /&gt;
         return uristr;&lt;br /&gt;
     }&lt;br /&gt;
     // ディレクトリ作成&lt;br /&gt;
     public void mkdir() {&lt;br /&gt;
         File dir = new File(mDirPath);&lt;br /&gt;
         if (!dir.exists()) {&lt;br /&gt;
             dir.mkdirs();&lt;br /&gt;
         }&lt;br /&gt;
 Log.d(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;mkdir=&amp;quot; + mDirPath);&lt;br /&gt;
     }&lt;br /&gt;
     // ファイルリスト取得&lt;br /&gt;
     public ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;String&amp;gt; getFiles() {&lt;br /&gt;
         ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;String&amp;gt; imgList = new ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;String&amp;gt;();&lt;br /&gt;
         try {&lt;br /&gt;
             //選択ボックスで表示するファイル名のリストを作成&lt;br /&gt;
             File dir = new File(mDirPath);&lt;br /&gt;
             final File[] files = dir.listFiles();&lt;br /&gt;
             for (int i = 0; i &amp;lt; files.length; i++) {&lt;br /&gt;
                 File file = files[i];&lt;br /&gt;
 Log.d(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;filepath=&amp;quot; + mDirPath + &amp;quot;/&amp;quot; + file.getName());&lt;br /&gt;
                 imgList.add(mDirPath + &amp;quot;/&amp;quot; + file.getName());&lt;br /&gt;
             }&lt;br /&gt;
             return imgList;&lt;br /&gt;
         } catch (NullPointerException e) {&lt;br /&gt;
 Log.e(&amp;quot;SdcardUtil&amp;quot;, &amp;quot;NullPointerException ストレージがマウントされていないか確認&amp;quot;);&lt;br /&gt;
             return imgList;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     // 指定dir内のファイル削除&lt;br /&gt;
     public void delFiles() {&lt;br /&gt;
         ArrayList&amp;lt;&amp;lt;nowiki /&amp;gt;String&amp;gt; paths = getFiles();&lt;br /&gt;
         for (String path : paths) {&lt;br /&gt;
             File file = new File(path);&lt;br /&gt;
             file.delete();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     // filepathから画像取得&lt;br /&gt;
     public Bitmap getBitmapByPath(String filepath) {&lt;br /&gt;
         String uristr = mDirPath + &amp;quot;/&amp;quot;+ filepath;&lt;br /&gt;
         File f = new File(uristr);&lt;br /&gt;
         BitmapFactory.Options bmOp = new BitmapFactory.Options();&lt;br /&gt;
         //bmOp.inSampleSize = 20;&lt;br /&gt;
         return BitmapFactory.decodeFile(f.getPath(), bmOp);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>	</entry>

	</feed>