2017-10-31 18 views
0

私のアクティビティにはexpandableListViewがあり、サーバーから取得したJSONのデータを渡しています。すべてが正常に動作しています画像部分を除いて。
さまざまなサイズ(48x4872x7296x96など)のJSON内の文字列として画像のパスを取得していますが、画面の密度に応じて画像を割り当てる方法を理解できません。私はこれらの画像を対応するドロウアブルフォルダに追加することができ、アンドロイドが残りの作業を行うことができると思います。しかし、検索では、描画可能なフォルダにイメージを動的に追加する方法の例は見つかりませんでした。さまざまな密度の画像をサーバーからロードする方法

画像をドロウアブルフォルダに動的に追加する方法がある場合は、またはに他の適切な解決方法を教えてください。

答えて

0

あなたはthis link

でアンドロイドでいただきました!drawablesを理解する必要がありますし、あなたが動的にそれらに任意の画像を置くことができないことを知っている必要があり、アイコンや静止画像は、使用している他の画像にも、drawablesフォルダにある必要がありますイメージとサムネイルを取得することができます。

+0

リンクが空です。URLを追加してください。 –

+1

@InzimamTariqIT申し訳ありません、更新された投稿 –

+0

リンク先の記事を読んでいます。ありがとう –

0

実行時に描画可能に保存することはできません。 アセットフォルダも使用できません。

私はあなただったら画面の密度を決定するために自分自身を気にしませんでした。イメージを非同期にロードするにはGlidePicassoを使用してください。

更新:
私は言及すべき事はImaveViewがdpにより、固定サイズの図であるならば、それはAndroidの仕様に従って、すべてのデバイス上で「同じサイズを」見えるだろう、ということです。 グライドとピカソは、ピクセル単位でビューのサイズを読み取り、イメージをそのサイズにスケールします。

グライドは、フルサイズの画像の代わりにサイズ変更された画像をキャッシュするというように、いくつかの異なる仮定を置くことで、メモリの占有スペースが小さくなるので好きです。

編集:
@greenappsあなたは完全に正しいです。 アセットに保存することはできません。ディレクトリを作成してドロウアブルを保存してみてください

+0

私は[https://amitshekhariitbhu.github.io/Fast-Android-Networking/loading_image_into_imageview.html#loading-image-from-network-into-imageview]を使って同様の機能を提供していますが、読み込みには不向きですすべての画面密度に対して同じサイズの画像。 –

+0

これらのライブラリは自動的に濃度に応じて画像を拡大しますか? –

+0

'実行時にドロワブルに保存することはできません。代わりにアセットフォルダを使用することができます。読み取り専用。 – greenapps

関連する問題