問題タブ [imageview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 別のスレッドでListViewに画像をロードする安全で標準的な方法は?
この質問をする前に、次のものを検索して読みました: ListView Android での画像の遅延読み込み - ListView への画像の遅延読み込みに関する問題
私の問題は、私が持っていることですListView
。
- 各行には が含まれており
ImageView
、そのコンテンツはインターネットからロードされます - 各行のビューは、ApiDemo の List14 のようにリサイクルされます
最終的に欲しいもの:
- ユーザーがスクロールしたときにのみ、画像を遅延して読み込みます
- 応答性を維持するために、異なるスレッドに画像をロードします
私の現在のアプローチ:
- アダプターの
getView()
メソッドでは、他の子ビューをセットアップするのとは別に、インターネットからビットマップを読み込む新しいスレッドを起動します。その読み込みスレッドが終了すると、Bitmap
に設定される が返されます (またはImageView
を使用してこれを行います)。AsyncTask
Handler
- 私は s をリサイクルするので
ImageView
、最初に でビューを設定しBitmap#1
、後でBitmap#2
ユーザーが下にスクロールしたときに に設定したい場合があります。Bitmap#1
読み込みよりも時間がかかる場合がBitmap#2
あるため、ビューが上書きBitmap#2
される可能性があります。WeakHashMap
そのビューに最後Bitmap
に設定したいものを記憶する を維持することで、これを解決します。
以下は、私の現在のアプローチの擬似コードです。わかりやすくするために、キャッシングなどの他の詳細は省略しました。
まだ問題があります: 一部の画像がまだロードされている間にアクティビティが破棄された場合はどうなりますか?
- アクティビティが既に破棄されているときに、読み込みスレッドが後で ImageView にコールバックするリスクはありますか?
- さらに、
AsyncTask
下にいくつかのグローバルスレッドプールがあるため、長いタスクが不要になったときにキャンセルされない場合、ユーザーが表示
しないものをロードするのに時間を無駄にする可能性があります. このことをグローバルに保持するという私の現在の設計はあまりにも醜く、最終的には私の理解を超えたリークが発生する可能性があります.ImageLoader
このようなシングルトンを作成する代わりに 、実際ImageLoader
に異なる の個別のオブジェクトを作成しActivities
、Activity
が破棄されると、そのすべてAsyncTask
がキャンセルされることを考えています。これはあまりにも厄介ですか?
とにかく、Androidでこれを行う安全で標準的な方法があるのだろうか. さらに、私はiPhoneを知りませんが、同様の問題があり、この種のタスクを行う標準的な方法はありますか?
どうもありがとう。
android - カメラからキャプチャされた main.xml の ImageView にビットマップを設定する方法は?
main.xml に Imageview があります。bitmap を main.xml の imageView に設定する方法は、以下のコードでローカル イメージ ビューにビットマップを割り当てることができます。
android - Android: ImageView はソース画像を拡大します
ImageView にソース イメージを元のサイズで表示させることができないようです。ImageView は次のようになります。
ソース画像の幅は 140 ピクセルですが、幅が 480 ピクセルの Nexus One の画面では、幅の半分を使用しています。幅と高さに px または dp の絶対値を使用しても何も変わりません。また、画像はアップスケーリングによって非常にアンチエイリアス処理されたように見えます。なぜこれが起こっているのですか、どうすればそれを防ぐことができますか?
android - ImageView の LayoutParams() をどのように設定しますか?
を設定したいのですがLayoutParams
、ImageView
それを行う適切な方法を見つけることができないようです。
さまざまな の API のドキュメントしか見つかりViewGroups
ませんが、ImageView
. それでも、ImageView
この機能があるようです。
このコードは機能しません...
どうすればいいのですか?
android - ImageViewソースの変更
次の構文を使用してImageView
、xmlにソースイメージが設定されています。
次に、この画像をプログラムで変更する必要があります。私がする必要があるのは、古い画像を削除して新しい画像を追加することです。私がしたことはこれです:
それは動作しますが、Androidが古い画像の上に新しい画像をスタックしていることに気づきました(それが議論に関連していないことをどうやって見つけたのか私に聞かないでください:)。新しい画像を設定する前に、必ず古い画像を削除する必要があります。
どうすればそれを達成できますか?
android - ビデオのバッファリング中にAndroidの画像を表示しますか?
VideoView を使用してビデオを表示するアプリがあります。レイアウトは、単純な垂直方向の LinearLayout にレイアウトされた Clock と VideoView で構成されます。
私が使用するコードスニペットは次のとおりです。
ビデオのバッファリングには約 8 ~ 10 秒かかるため、レイアウトにはクロックが表示されますが、VideoView は空白のままです。私が達成したいのはこれです:
-- ビデオのバッファリング中に 10 秒間 ImageView を表示します -- ビデオの再生準備が整ったことを検出します (onPrepared?) -- Clock と VideoView を表示し、ビデオを開始します
誰でもこれをどうやって進めるかについての指針がありますか?
ありがとうクリス
android - Android の ImageView の向きを変更する
アクティビティ内の他のビューを回転させながら、ImageView の向きを常に PORTRAIT に変更することはできますか?
画像は回転すると見栄えがよくないので...
ありがとうクリス
android - Android で ImageView を ScrollView に追加する際の余分なマージン
600x800 の AVD で JPG (~770 x 1024) を持つ単一の ImageView で ScrollView を使用しようとしています。
私のmain.xmlは次のとおりです。
ここで、単一の ImageView を追加します
結果は、次のように、画像が ScrollView の中央に表示され、上下の背景領域でラップされました。
ただの代わりに
ImageView の背景を赤にしてみましたが、余白が ImageView の背景であることが確認できました。
画像がそのサイズ(AVDサイズにスケーリングされたもの)を超えないように期待し、ScrollViewで残り(ある場合)をスクロールできるようにすることを期待しています。
なんらかの理由で、drawable のサイズが 600x1024 になっていることがわかりました。
さらに 、線形レイアウトが ImageView と TextView の親であり、ScrollView が LinearLayout の親であるなどのダミー テキスト ビューを使用して LinearLayout を追加しようとしました。
結果は非常に奇妙でした: レイアウト全体が、テキストのないテキスト ビュー (19) の高さに設定されました。
画像を引き延ばさないようにすることが重要です。ScaleType に FIT_XY を使用できません。スクロールされる可能性のあるページの表示を実装するための推奨される方法は何ですか? 単純なレイアウトとGestureDetector.OnScrollイベントでのスクロールで手動で行う必要がありますか?
ありがとう
シュムエル
PS: 別の観察: 600x780 (比例スケーリング) に縮小された画像では、正しく機能します。残念ながら、縮小された一連の画像のクローンを使用することは現実的ではありません。
android - Android画像のロック解除が表示されない
Androidデバイスをロックしてロックを解除すると、ImageViewに表示されていた画像が消えます。再表示したり、これを防ぐにはどうすればよいですか。
詳細:コンテキストに応じてビデオ、画像、またはテキストを表示するビューと、親ビューを拡張する3つのサブクラスがあります。作成時に、表示ビューを、各サブクラスが実装するcreateMediaPreview()から返されたViewオブジェクトに置き換えます。
前もって感謝します