タグ付けされた質問 「android」

AndroidはGoogleのモバイルオペレーティングシステムであり、デジタルデバイス(スマートフォン、タブレット、自動車、TV、Wear、Glass、IoT)のプログラミングまたは開発に使用されます。Androidに関連するトピックについては、android-intent、android-activity、android-adapterなどのAndroid固有のタグを使用します。開発やプログラミング以外の質問で、Androidフレームワークに関連する質問については、次のリンクを使用してください:https:// android.stackexchange.com。

5
Android:ビットマップrecycle()はどのように機能しますか?
のようなビットマップオブジェクトに画像をロードしたとしましょう Bitmap myBitmap = BitmapFactory.decodeFile(myFile); 次のような別のビットマップをロードするとどうなりますか myBitmap = BitmapFactory.decodeFile(myFile2); 最初のmyBitmapはどうなりますか?それはガベージコレクトを取得しますか、または別のビットマップをロードする前に手動でガベージコレクトする必要がありますか。 myBitmap.recycle()? また、大きな画像を読み込んで、途中でリサイクルしながら次々に表示するより良い方法はありますか?
88 android  bitmap 

8
onMeasure()をオーバーライドする信頼できる方法は?
onMeasure()をオーバーライドする正しい方法は何ですか?私はさまざまなアプローチを見てきました。たとえば、Professional Android Developmentは、MeasureSpecを使用してディメンションを計算し、setMeasuredDimension()の呼び出しで終了します。例えば: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension(parentWidth/2, parentHeight); } 一方、この投稿によると、「正しい」方法は、MeasureSpecを使用し、setMeasuredDimensions()を呼び出し、続いてsetLayoutParams()を呼び出し、最後にsuper.onMeasure()を呼び出すことです。例えば: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); this.setMeasuredDimension(parentWidth/2, parentHeight); this.setLayoutParams(new *ParentLayoutType*.LayoutParams(parentWidth/2,parentHeight)); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } では、どちらが正しい方法ですか?どちらのアプローチも私にとって100%うまくいきませんでした。 私が本当に求めているのは、onMeasure()、レイアウト、子ビューの寸法などを説明するチュートリアルを知っている人はいると思いますか?

13
画面の回転中にAsyncTaskを処理する方法は?
インスタンスの状態を保存する方法や、画面の回転中にアクティビティが破壊されるのに対処する方法についてよく読みました。 多くの可能性があるようですが、AsyncTaskの結果を取得するのにどれが最適かわかりません。 単に再起動しisFinishing()てアクティビティのメソッドを呼び出すAsyncTaskがいくつかありますが、アクティビティが終了している場合は何も更新されません。 問題は、失敗または成功する可能性のあるWebサービスへの要求を実行するタスクが1つあり、タスクを再開するとユーザーの経済的損失が発生することです。 これをどのように解決しますか?考えられる解決策の長所または短所は何ですか?

5
Androidでグローバルなキャッチされない例外ハンドラーを設定する理想的な方法
Androidアプリケーションのすべてのスレッドにグローバルなキャッチされない例外ハンドラーを設定したいと思います。そのため、私のApplicationサブクラスでは、Thread.UncaughtExceptionHandlerキャッチされない例外のデフォルトハンドラーとしての実装を設定しました。 Thread.setDefaultUncaughtExceptionHandler( new DefaultExceptionHandler(this)); 私の実装では、AlertDialog適切な例外メッセージを表示しようとしています。 ただし、これは機能していないようです。処理されないスレッドに対して例外がスローされるたびに、標準のOSデフォルトダイアログ(「申し訳ありません!-アプリケーションが停止しました-予期せずダイアログ」)が表示されます。 キャッチされない例外のデフォルトハンドラーを設定するための正しく理想的な方法は何ですか?

17
AndroidボレーをAndroidStudioにインポートする
グーグルのボレーライブラリを使いたい 私はAndroidStudioを使用しており、.jarライブラリを追加する方法を知っています。 しかし、ボレーファイルを使用して.jarライブラリを作成できませんでした。 https://android.googlesource.com/platform/frameworks/volley ここで私がしたこと:(ウィンドウズ7を使用して) git clone https://android.googlesource.com/platform/frameworks/volley cd volley android.bat update project -p . --target android-19 ant.jar jar そして、私は出力を取得します: Javaの例外が発生しました。 なにが問題ですか?.jarではないライブラリを追加するにはどうすればよいですか?

13
AndroidのChromeで物理的な画面サイズ/ dpi /ピクセル密度を取得する
質問 AndroidのChromeで実際に正しい画面の物理的なサイズを取得する安全な方法はありますか?必要に応じて、古いバージョンのChromeとAndroidを対象外にすることができます。 事前調査 javascript(またはcss)内からデバイスの実際の物理的な画面サイズを取得することについて、stackoverflowに関する多くの行き止まりの質問があります。ブラウザの実装が正しい情報を提供するハードウェアに依存しているOSAPIに依存していることは言うまでもなく、htmlapiの標準化と実際のブラウザの実装の間に収束はないようです。 ちなみに、いくつかの以前の答えは、当時普及していた特定のピクセル密度を想定することで難解であり(2011年など)、したがって役に立たない。他のものはウェブキットに関連していますが、クロームブリンクはクローム(?)のウェブキットに取って代わったかもしれません。 Android上のChromeのみに制限することで、簡単なソリューションの存在を探りたいと思います。 注意 これはすべて、ブラウザー内のjavascript(またはcss)ソリューションに関するものであり、ネイティブアプリのソリューションではありません。

4
Android-アクティビティコンストラクターとonCreate
AndroidにActivitiesは特定のライフサイクルがあり、それonCreateをオーバーライドして初期化に使用する必要があることを理解していますが、コンストラクターでは正確に何が起こりますか?Activityコンストラクターもオーバーライドできる/すべきである場合、または絶対に触れてはならない場合はありますか? への参照Activitiesが完全にクリーンアップされていないため(したがって、ガベージコレクターが妨げられているため)、コンストラクターは絶対に使用しないでくださいonDestroy。これは、その目的のためにあります。これは正しいです?

8
VideoViewによるシームレスなビデオループ
ビデオを生のリソースとして取得し、ビデオを開始してループする次のコードがありますが、クリップの終わりになり、クリップを再開するときに、ビデオをシームレスにループする必要があります。ほんの一瞬ちらつきますが、これは私のアプリでは本当にあり得ません。 public class Example extends Activity { VideoView vv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); vv = (VideoView)findViewById(R.id.VideoView01); //Video Loop vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { vv.start(); //need to make transition seamless. } }); Uri uri = …

12
AndroidエミュレータでGooglePlay開発者サービスをダウンロードするにはどうすればよいですか?
アプリケーションでGooglePlay Services APIを使用したいのですが、エミュレータを開いてアプリケーションをテストすると、「GooglePlay開発者サービスをダウンロードする必要があります」というメッセージが表示されます。私はこのテストをMainActivityメソッドでコーディングしたために発生することを知っていますonResume()。 すぐにマップをテストする必要があるため、エミュレータにGooglePlay開発者サービスをインストールする方法を知りたいです。

10
ハッシュ文字列「android-25」のターゲットが見つかりませんでした
Android Studio2.2を使用しています。プロジェクトを開こうとしていますが、「ハッシュ文字列「android-25」のターゲットが見つかりませんでした」というエラーが表示されます。エラーメッセージの下に、「不足しているプラ​​ットフォームをインストールしてプロジェクトを同期する」というリンクが表示されます。このリンクをクリックすると、別のエラーが発生します。 「次のパッケージは利用できません:-パッケージIDプラットフォーム; android-25」。 Android SDKツールでは、「Android 7.0」(APIレベル24)がすでにインストールされていることがわかります。AndroidバージョンとそのAPIレベルの詳細を確認したところ、Android NougatのAPIレベルは24〜25であることがわかりました。SDKをAPI24から25に更新する方法を知りたいですか?
88 android 

10
現在の場所から始まり、特定の場所に向かうルートでGoogleマップを開くすべてのモバイルデバイスのリンクを作成するにはどうすればよいですか?
私はむしろこれを見つけるのはそれほど難しいことではないと思いましたが、あなたが期待するように、素晴らしいクロスデバイスの記事を見つけるのは簡単ではないようです。 モバイルデバイスのブラウザを開いてGoogleマップに移動するか、マップアプリ(AppleMapsまたはGoogleMaps)を開いてルートを直接開始するリンクを作成したい。つまり、現在の場所から開始し、特定のポイントで終了する(緯度/経度)。 AndroidとiPhoneの2つのデバイス(browserstack以外)でテストできます。 次のリンクはAndroidでのみ機能します。 <a href="http://maps.google.com/maps?daddr=lat,long&ll=">Take me there!</a> iPhoneのChromeでこのリンクをクリックすると、モバイルアプリに広告が表示されたデスクトップバージョンのGoogleマップが奇妙に開きます... これはiOSでのみ機能し、Apple Mapsを開いて、開始場所を入力するように求められ(「現在の場所」を選択できます)、ルートを開始します=目的の動作。このリンクをクリックすると、Androidでは完全に失敗します。 <a href="maps://maps.google.com/maps?daddr=lat,long&ll=">Take me there!</a> maps://プロトコルに注意してください。 そのようなリンクを作成するエレガントなクロスデバイスの方法はありますか?すべての主要な携帯電話で機能する1つのリンク? ありがとう 更新:解決策が見つかりました(ちょっと) これが私が思いついたものです。それは機能していますが、私が想像したものとはまったく異なります。 var ua = navigator.userAgent.toLowerCase(), plat = navigator.platform, protocol = '', a, href; $.browser.device = ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i) ? ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i)[0] : false; if ($.browser.device) { switch($.browser.device) { case 'iphone': case 'ipad': case 'ipod': …

4
中心点を基準にしたAndroid画像スケールアニメーション
ImageViewがあり、それに単純なスケールアニメーションを実行します。非常に標準的なコード。 私のscale_up.xml: <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="1" android:fromYScale="1" android:toXScale="1.2" android:toYScale="1.2" android:duration="175"/> </set> 私のアニメーションコード: Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up); ((ImageView) findViewById(R.id.circle_image)).startAnimation(a); 問題: 画像が拡大縮小される場合、画像は中央からではなく、左上隅から拡大縮小されます。つまり、画像の拡大縮小されたバージョンは、中心と同じポイントを持ちませんが、左上のポイントは同じです。これが私が何を意味するかを説明するリンクです。最初の画像はアニメーションのスケーリング方法であり、2番目の画像はアニメーションのスケーリング方法です。中心点を同じに保つ必要があります。画像、コンテナ、左または右に重力を設定してみましたが、常に同じスケールになります。メイン画面にRelativeLayoutを使用していて、ImageViewは別のRelativeLayoutにありますが、他のレイアウトを試しましたが、変更はありません。

18
AndroidでRadioButtonとそのラベルの間にマージンを追加しますか?
Androidの組み込みコンポーネントを使用しながら、RadioButtonとラベルの間に少しスペースを追加することは可能ですか?デフォルトでは、テキストは少し縮んで見えます。 <RadioButton android:id="@+id/rb1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="My Text"/> 私はいくつかのことを試しました: マージンとパディングを指定すると、要素全体(ボタンとテキストを合わせて)の周囲にスペースが追加されるようです。それは理にかなっていますが、私が必要なことをしません。 チェック状態と非チェック状態の画像を指定するXMLを介してカスタムドローアブルを作成し、各画像の右側にいくつかのピクセルを追加します。これは機能するはずですが、現在はデフォルトのUIの外に出ています。(世界の終わりではありませんが、理想的ではありません) 各ラベルの先頭に空白を追加します。Androidは、「My String」のように先頭のスペース文字をトリミングしているように見えますが、「\ u00A0MyString」のようにUnicodeU + 00A0を指定するとうまくいきます。これは機能しますが、ちょっと汚れているようです。 より良い解決策はありますか?


4
TextViewの幅を文字数で設定します
本当にこれに対する答えを探しています。 数値または文字に基づいてTextViewの幅を設定したい。したがって、常に3文字の幅にしたい場合は、それを設定すると、textSize設定に基づいて調整されます。これがないと、幅を50dip程度に設定する必要がありますが、フォントサイズによっては正しい場合とそうでない場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.