Android アプリ開発 「MATRIX」

Androidアプリの開発に役立つサンプル集



ウィジェットにレイアウトした ImageView 画像が表示されないトラブルの対処方法

今回は、自分が最近ウィジェットアプリを作っている時に見舞われてしまった、『ウィジェットにレイアウトした ImageView 画像が表示されない』というトラブルの対処方法です。

トラブルの原因は仕様変更

結局、このトラブルの原因はプログラムのミスや何かのバグの類ではなく、Android Studio の仕様がアップデートで変更されたことによるものだとわかりましたが、「仕様変更」という気が付きにくい原因だったため、解決するまでに二日近くという時間を費やしてしまいました。

対処方法

対処方法は至って簡単で、ImageView が登録される「属性」を変更するだけです。

ウィジェットのレイアウトに「ImageView」の画像を追加すると、Android Stuido 3.0 の仕様ではデフォルトで「srcCompat」という属性に登録されますが、なぜか、この srcCompat で登録されてしまうとウィジェットに配置した画像が表示されません。

f:id:vw-dsg:20171216105239p:plain

そのまま実行(Run)すると、配置したはずの ImageView 画像が表示されない。

f:id:vw-dsg:20171216111322p:plain

ウィジェットの配置した ImageView の画像を表示させるには、登録する属性を「srcCompat」から「src」に変更する必要があります。src 属性は srcCompat と同じ Attribute 一覧の下の方にあります。

f:id:vw-dsg:20171216105346p:plain

今度は ImageView で配置した画像が正しくウィジェットに表示されました。

f:id:vw-dsg:20171216111448p:plain

まとめ

なぜ、ImageView が登録されるデフォルトの属性が以前の「src」から「srcCompat」に変更され、さらに、画像が表示されなくなったのかはわかりませんが、間違いなく何か理由があってのことだと思いますので、今後のために srcCompat 属性について一度調べておいた方が良いかもしれませんね。

END