読者です 読者をやめる 読者になる 読者になる

Bitmap

Android

ImageViewの回では、srcにdrawableに置いた画像を直接指定して画像を表示していた・・・。
今回は、アプリフォルダにある画像ファイルを読み込んで、いったんBitmapにし、それをImageViewで表示する・・・。

Bitmap | Android Developers

activity_main.xmlは、

ImageView・・・。

MainActivity.javaでは、

BitmapFactory.decodeFileで"test.png"を読み込み、Bitmapオブジェクトbitmapを返す・・・。
(ここで注意なのがファイルパス・・・。/data/data/<パッケージ名>/filesの下にtest.pngを置くのだが、このパスはgetFilesDir().getPath() + "/" + "test.png"というような絶対パスじゃないと失敗してnullを返すようだ・・・。
ここでハマった・・・。Exceptionも返さないのはなんだかなあという感じ・・・。)
あとはimageView1を取得し、setImageBitmapにbitmapを指定するだけ・・・。

ただ、test.pngの準備が面倒・・・。

C:\Temp>adb install -r Bitmap_.apk
2555 KB/s (496048 bytes in 0.189s)
        pkg: /data/local/tmp/Bitmap_.apk
Success

Bitmap_.apkをインストール・・・。

C:\Temp>adb push test.png /data/local/tmp
3782 KB/s (22794 bytes in 0.005s)

test.pngを/data/local/tmpにいったんpush・・・。

C:\Temp>adb shell

adb shellでログイン・・・。

shell@C5303:/ $ run-as com.bgstation0.android.sample.bitmap_

run-asでアプリユーザ、アプリフォルダに・・・。

shell@C5303:/data/data/com.bgstation0.android.sample.bitmap_ $ ls
cache
files
lib

filesなかったらmkdirでつくる・・・。

shell@C5303:/data/data/com.bgstation0.android.sample.bitmap_ $ cd files

filesの下へ移動・・・。

shell@C5303:/data/data/com.bgstation0.android.sample.bitmap_/files $ cp /data/local/tmp/test.png .
shell@C5303:/data/data/com.bgstation0.android.sample.bitmap_/files $ ls
test.png

test.pngをそこにコピー・・・。

これで準備完了・・・。

あとは実行すると、

f:id:BG1:20161212030549p:plain

こんな感じのtest.pngが表示される・・・。

Sample/android/Bitmap/Bitmap/src/Bitmap at master · bg1bgst333/Sample · GitHub