0

このような相対レイアウト設定内にトグルボタンがあります。

<RelativeLayout
   android:id="@+id/myBack"
   android:layout_width="fill_parent"
   android:layout_height="906dp"
   android:background="@drawable/main" >

<ToggleButton
     android:id="@+id/toggleButton1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginTop="31dp"
     android:background="@drawable/send_toggleLayout"
     android:checked="true"
     android:text="ToggleButton" />
 </RelativeLayout>

とにかく、私はこれを処理できるので、2.3 と 4.2 は類似しているか、少なくとも 2.3 ほど混乱していませんか? この動作は、プログラムのレイアウト適用ボタン、トグルボタン、および編集テキストで発生していることに気付きました。何かアドバイス?

このレイアウトがボタン/トグルボタンに適用されると、それが起こります。これは send_toggleLayout xml ファイルがどのように見えるかのサンプルです:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:state_enabled="true"
        android:state_pressed="true">
    <shape android:padding="10dp" android:shape="rectangle">
        <gradient android:startColor="@color/toggleDark"  android:endColor="@color/toggleLight" android:angle="90"/>
        <stroke android:width="2dp" android:color="#FFFFFF" />
        <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" />
    </shape>
</item>

どんな助けでも大歓迎です。

4

2 に答える 2

0

一般化された各サイズと密度は、実際の画面サイズと密度の範囲にまたがっています。たとえば、どちらも通常の画面サイズを報告する 2 つのデバイスは、実際の画面サイズと縦横比が手動で測定するとわずかに異なる場合があります。同様に、hdpi の画面密度を報告する 2 つのデバイスは、実際のピクセル密度がわずかに異なる場合があります。Android では、これらの違いがアプリケーションに対して抽象化されるため、一般化されたサイズと密度に合わせて設計された UI を提供し、システムが必要に応じて最終的な調整を処理できるようにします。

詳細については、こちらをご覧ください: http://developer.android.com/guide/practices/screens_support.html

さまざまなレイアウトに diffenet シェイプ ファイルを使用できます。半径が 2 または 3 のシェイプ ファイルを作成します。

<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:state_enabled="true"
        android:state_pressed="true">
    <shape android:padding="10dp" android:shape="rectangle">
        <gradient android:startColor="@color/toggleDark"  android:endColor="@color/toggleLight" android:angle="90"/>
        <stroke android:width="2dp" android:color="#FFFFFF" />
        <corners android:bottomLeftRadius="3dp" android:bottomRightRadius="3dp" android:topLeftRadius="3dp" android:topRightRadius="3dp" />
    </shape>
</item>
</selector>

角の半径を変更して、2.3 Android デバイスで完璧に見えるようにしました。密度に応じてどのレイアウトをロードする必要があるかがわかります。そのため、レイアウトごとに異なる形状ファイルを作成してください。出力を表示するには、さまざまなエミュレーターを使用します。

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

または、これを使用して、使用しているデバイスを確認します: 次のコードを実行します:

float scale = getApplicationContext().getResources().getDisplayMetrics().density;

スケールの値を確認します。

0.75 means low density
1.0 means standard (medium) density
1.5 means high (large) density
2.0 means extra high density
于 2013-09-13T04:21:12.347 に答える
0

これを試して:

<RelativeLayout
   android:id="@+id/myBack"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
    >
<TextView
     android:id="@+id/txt"
      android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Turn on/off alerts"
     android:layout_centerVertical="true"
    />
<ToggleButton
   android:layout_alignParentRight="true"
     android:id="@+id/toggleButton1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:checked="true"
     android:text="ToggleButton" 
     />
 </RelativeLayout>

それが役立つことを願っています。

于 2013-09-13T04:27:29.687 に答える