問題タブ [android-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 - デバイスの画面よりも大きな画像を表示する
画像のサイズを変更せずに、デバイスの画面よりも大きいサイズの画像を表示したいと思います。画面の中央に配置する必要があります。これどうやってするの?
android - TableRowのImageview
テーブルレイアウトに画像を表示しようとしています。写真を撮ると画像が表示されます。画像を表示すると画面全体に表示され、ボタンが消えてしまいます。どうすればこれを修正できますか?ありがとう
XMLファイル
*アクティビティ*
android - フラグメント内の findViewById
フラグメントの XML で作成した ImageView 要素を参照するフラグメントに ImageView を作成しようとしています。ただし、このfindViewById
メソッドは、Activity クラスを拡張した場合にのみ機能します。Fragmentでも使用できるものはありますか?
メソッドには、findViewById
メソッドが未定義であることを示すエラーがあります。
android - SQLite データベースから ListView に画像を表示する
現時点では少し立ち往生しています。同様の質問が寄せられていることは知っていますが、役立つものを見つけることができませんでした。
Androidアプリケーション内の内部データベースからListViewに表示する画像を取得しようとしています。141 行のデータベースがあり、各行には 1、2、または 3 のラベルが付いています。1、2、または 3 に応じて表示するには、別の png 画像 (res/drawable フォルダーに保存) が必要です。クエリ。どんなアドバイスでも大歓迎です。必要な情報を表示するためのより良い方法があるかもしれません。
android - Android:画像を使用したカスタムオフラインマップ
アプリ内に保存されている画像を使用して地図を表示できるアプリを作成しようとしています。Googleマップのほとんどの機能を備えていますが、このカスタム画像を使用しており、地図タイルを取得するために接続する必要はありません。私が探している主なものは、ユーザーがピンチしてズームしたり、ドラッグして移動したり、オーバーレイをクリックしたりできる画像を表示する方法です。また、緯度/経度の座標に基づいて地図にオーバーレイを追加し、ユーザーの位置を表示しようとしますが、地図上に1つの緯度/経度のポイントを定義し、そのポイントから他のすべてのポイントを計算できるため、これはそれほど難しいことではありません。そのような地図を表示するために私が使用できるものを誰かが知っていますか?
android - 最も効率的な方法でAndroidがサーバーに写真をアップロードする
サーバーに他のデータ (添付ファイル付きの電子メールに非常に似ています) と一緒に画像を取得する必要があります。また、失敗したときに再試行できるように、信頼できる方法で行う必要があります。
サーバーはWCF RESTサーバーであり、私はそれ(JSON)と他の多くの通信を行いますが、画像をアップロードするためのこの新しい要件を取得しました.
JSON を使用してデータをサーバーに投稿するため、Android 側で GSON を使用してデータをシリアル化します。
これまでに実装した方法は次のとおりです(他のすべてはこのように機能しますが、画像から始めたばかりです)
- ユーザー入力アクティビティ フィールド (テキスト データ)
- ユーザーはカメラ インテントを介して写真を撮ります。現在、写真用に1つのファイルを使用しています
- SDカードから写真を撮り、ロード/サイズ変更します-ImageViewに表示し、バイト[]に保存します
- ユーザー送信 - byte[] から画像とともにすべてのデータを取得し、それを Java オブジェクトに入れます
- GSON コンバーターを呼び出してオブジェクトをシリアル化する
- オブジェクトを SQLite に保存する
- AsyncTask は SQLite でレコードを検索し、カーソルを開き、テキストを取得します
- AsyncTask は HttpConnection を作成し、テキスト データをサーバーに投稿します。
- 終わり
今私の問題に..明らかに#3で-バイト配列でRAMを「爆発」させます。時々、Nexus S の動作が遅くなったとさえ感じます。しかし、そうすることで、SDカードやアプリフォルダーが多くのファイルでいっぱいになることを避けています。私は写真を撮り、それをつかみます。次の画像は前の画像を上書きします。
ステップ 5 は遅いです。私は GSON でカスタムシリアライザーを試していませんでした。バイト配列を [1,-100,123,-12] のようなものにシリアライズする代わりに、Base64 ではるかに小さいサイズを取得できますが、それでも. 遅くなります。しかも20枚まで撮れる…
手順 6 は問題ありません。しかし、特定のサイズ(300pxの画像を試しました)で、OpenCursorのステップ7でエラーが発生し始めました
だから、この全体は私が好きなものではありません。理想的には、すべてのデータを 1 つにまとめてサーバーにアップロードする必要があります。
タイムスタンプ付きの画像をSDカードに保存し、その名前だけをDBに保存することを考えていました。サーバーに送信する直前にそれらを処理するよりも。成功したら、それらの画像を削除します。この種のロジックは SQLite スキーマをより複雑にしますが、これ以上の方法はないのではないでしょうか?!
画像を処理するためのベストプラクティスを探していると思います。最小限のメモリ/CPU 使用率でフォローインを行う方法:
- 写真を撮る
- サムネイル表示
- サイズ変更
- サーバーに送信
編集1:
現在、シザン全体をマルチパート MIME メッセージとしてアップロードする可能性を調査しています。それには、私の Android パッケージにいくつかの JAR を追加する必要があります。また、画像をロードして送信するためのApacheコードがどれほど効果的かはわかりません(私のコードよりも優れていると思います) http://okandroidletsgo.wordpress.com/2011/05/30/android-to-wcf-streaming-マルチパートバイナリイメージ/
そして、組み込みの.NETフレームワークではこれを行う方法がないため、WCF側でこれらすべてを解析する必要があります。
http://antscode.blogspot.com/2009/11/parsing-multipart-form-data-in-wcf.html
これを試したら教えてください!
編集2:
MIME はダメです。同じものであるBase64を使用してバイナリをシリアル化するため、意味がありません..
android - 中心点を同じ場所に維持しながらImageViewの画像をスケーリングする
ImageView のソースとして事前スケーリングされたビットマップを設定しました。次に、 のマトリックスを読み取りImageView
、ImageView のビットマップを を介してシフトしmatrix.postTranslate(shiftX, shiftY)
ました。
ImageView
スケール前のビットマップの同じポイントの中心を維持しながら、ズームイン/ズームアウトして画像を作成したいと思います。
で画像を拡大しようとするとmatrix.postScale(zoom, zoom)
、維持したいポイント(青い点)が別の場所(紫色の点)に移動します。
ビットマップを元に戻す方法をいくつか試しましたが、正しく動作しません。初期ビットマップ サイズ、ImageView サイズ、点線でマークされた距離を知っています。必要なシフトを計算して後で使用しようとしましmatrix.postTranslate(-zoomshiftX, -zoomshiftY)
たが、正しくシフトしません。
基盤となるビットマップのピクセル数は、matrix.postScale() 関数の後で変更されず、matrix.postTranslate(-zoomshiftX/zoom, -zoomshiftY/zoom) を試しましたが、まだうまくいきません。
どうすればそのようなズームを実現できますか?
android - Android ImageView ズームインとズームアウト
Android ImageView をズームインおよびズームアウトしたい。私はほとんどのサンプルを試しましたが、それらのすべてで、ImageView 自体の画像がズームインおよびズームアウトされていますが、ImageView をズームインおよびズームアウトしたいのです。ズームイン中に ImageView の幅と高さを増やし、ズームアウト中に ImageView の幅と高さを減らしたい。どうすればそれを達成できますか?
android - OoMに遭遇することなく、inSampleSize<2またはその他の方法でビットマップのサイズを変更する
テキスト付きの大きなズーム可能なビットマップがあり、少しサイズを変更したいと思います。最も簡単な方法はinSampleSizeを使用することですが、それが機能するための最小値は2です。これは受け入れられません(画像のサイズを半分にすると、基本的にテキストが読めなくなります)。
createScaledBitmapは問題なく動作しますが、Androidのビットマップのガベージコレクションが遅いため、それに続くメソッドでOutOfMemoryを実行することがあります(デコード後にcreateBitmapを呼び出しています)。
それで、ビットマップのサイズを半分にせず、メモリの問題なしに減らす方法があるのだろうか?
android - AndroidでImageView全体を埋めるように画像を拡大します
ImageViewのサイズ全体を占めるように画像を拡大したいと思います。画像のアスペクト比がImageViewのアスペクト比と正確に一致しない場合、fit_centerscaleType=fit_center
は画像の周囲にバンドを残すため、これは使用する場合とは微妙に異なります。代わりに、画像を中央に配置して拡大し、余分な部分を切り取って、囲んでいるビューを完全に埋めるようにします。
onCreate()中に独自のカスタム画像マトリックスを計算することで、これを実現できます。
これは問題なく機能しますが、もっと簡単な方法があるはずです。画像のアスペクト比を維持し、ImageViewを完全に塗りつぶしながら、ImageViewで画像を拡大する方法を知っている人はいますか?
(注:私の場合、ImageViewが全画面表示になっているのでgetWindowManager().getDisplay()
、目的の画像サイズを見つけるために使用します。ビューがまだレイアウトされておらず、サイズがないため、splashView.getWidth()
/は使用できません)getHeight()