どのように私は、Androidのさまざまな画面解像度のための一定の位置にコントロールを表示しますか?
-
20-09-2019 - |
質問
どのように私は、Androidのさまざまな画面解像度のための一定の位置にコントロールを表示できますか?
私は以下のような画面デザイン
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/img_background_loadbackground">
<TableRow>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="300sp"/>
</TableRow>
<TableRow>
</TableRow>
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableLayout>
これは、HVGA(320×480)の解像度で作業され、プログレスバーが画面の下部に表示されますが、私は他の解像度(WQVGA432 - 240x432)で実行する場合プログレスバーが画面の中央に表示されます。私は固定位置にそれを示すことができないのです。
私は以下のマニフェストファイルのショーを使用していますが、出力なし
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
私は解決策を持っていないので、私の問題を解決するためにいくつかのアイデアをお願いします。
解決
あなたのレイアウトは、あなたがユニットとしてdip
を使用してそれらをサイジングする必要があります異なる解像度の画面上で仕事をしたい場合。たとえばます:
android:layout_marginRight="10dip"
dip
は、デバイスに依存しないピクセルの略で、あなたのレイアウトでこれらを使用すると、Androidが自動的にアプリケーションを実行しているデバイスが持っている表示によってどのレイアウトをスケーリングすることを意味します。
あなたは の複数画面のサポートのAndroidの開発者用ドキュメントの中のページ。この資料はまた異なるディスプレイを処理するための他のいくつかのオプションがありますが、私はdip
を使用すると、おそらく一番簡単だと思います。
他のヒント
それはあなたのレイアウトを定義した方法によって異なります。あなたのレイアウトXMLを掲示することはここに役立ちます。
:その途中で、あなたのようなものを持っている場合は、
私は推測します
android:layout_gravity="center"
しかし、ええ、あなたのXMLを投稿するビットの助けになります!
所属していません StackOverflow