質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

2回答

2514閲覧

viewPagerを使って、ネット上の画像ギャラリーを作る

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2015/08/18 15:08

はじめまして。

viewPagerを使った、画像ギャラリーを作成中です。

ページ上で扱う画像はアプリ内でリソースとして予め用意されたものではなく、
ネットワーク上においてある画像を読み込みます。
ページ数は1000を超えるものを想定してます。

そこで質問です。

bitmapの保持と開放をどうすべきか悩んでいます。
ページを前後に遷移した際、何度もネットワークからDLするとレスポンスが遅いしサーバに負担もかかるので、
一度DLした画像は"いくらか"保持しておきたいのですが、
どうやってbitmapを保持するのか。そしてbitmapの開放はどうしたらいいのか

そのコードの書き方がわかりません。PagerAdapterの継承クラス内で処理することになりそうですけど…

そもそも左右にスワイプしてimageViewが切り替わった際にはそこの表示されていたbitmapって勝手に解放されてるんでしょうか?

色々調べているとFragmentというものを使えばいいとの情報もありましたが
そもそもFragmentの概念を理解しておらずまた何の役に立つかもわかっていません
Fragmentを使うべきなのかどうかも教えて下さい

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Web上の画像を取得するならライブラリを使う方がいいと思います。
自動でキャッシュしてくれますし、読み込み後のレイアウト入れ替えも可能です。

Picassoがお勧めです。
内部ファイルも利用できるので融通が利きます。

・Picasso
http://tomoyukim.hatenablog.com/entry/2014/04/24/092125

投稿2015/08/20 07:57

編集2015/08/20 07:58
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

1-bitmapの保持をどうすべきか
bitmapを保持する場合は、枚数や画質等から全端末で何枚程度ならメモリを圧迫せずに保持できるかを決定しなければなりません。これはなかなか難しいです。
そこで下記の方法が出来ると思います。
[方法1]
・適当な最大保持枚数を決める
・Bitmapクラスに保持する
・最大保持枚数を超えた場合、URLを名前として、端末内に画像ファイルとして保存する。
・次回から、画像のDL前に端末内を検索し、ある場合は端末内から画像を取得、ない場合はネット上からDLを行う。
※端末内の画像ファイルは一定のルールに沿って消していく必要があります。
[方法2]
・ネット上のリソースを表示するのであればwebviewに読み込む
※楽ですが、細かい調整ができないのが難点

2-コードの書き方がわからない箇所について
ここはネット上にコードが載っているので、自分なりに書いてみてから再度質問したほうがいいかと思います。

3-そもそもimageViewが切り替わった際にはそこの表示されていたbitmapって勝手に解放されてるんでしょうか?
普通に作っていると解放されません。画像リソースを使ったViewをremoveする際は明示的に0やnullを設定する方が無難だと思います。

4-Fragmentを使うべきなのかどうか
今回の質問の内容からすると使う必要はないと思います。
Fragment自体は積極的に使うべきです。が、使い方について書くだけで一冊本ができてしまうため、調べて使ってみてから再度質問した方がいいかと思います。

投稿2015/08/18 21:45

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問