2

Android 開発から始めて、4.x Android デバイスをターゲットにして、このレイアウトを XML (Android Studio を使用) で行う方法を知りたいです。

ビットマップ背景に 4 つのボタンを正確に配置する方法は? ビットマップのスケーリングにもかかわらず動作するはずです。

シナリオ: アプリケーションのメイン画面は、ビットマップ上に配置された 4 つのボタンで構成する必要があります。ボタンの配置は常にこのように正確に表示され、画面スペースに合わせて全体が拡大/縮小 (幅/高さに比例) する必要があります。レイアウト スケッチ:

レイアウト スケッチ

試した解決策:

  • 背景を持つ GridLayout の 4 つのボタン:

    <GridLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal"
        android:columnCount="2"
        android:rowCount="2">
    
        <Button android:id="@+id/button1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button1" />
    
        <Button android:id="@+id/button2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button2" />
    
        <Button android:id="@+id/button3"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button3" />
    
        <Button android:id="@+id/button4"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button4" />
    </GridLayout>
    
  • RelativeLayout の ImageView の上にある GridLayout の 4 つのボタン。

  • 色分けされたビットマップをチェックする onTouch() を持つ 1 つの ImageView。(ソースはこちら

スケーリングに関して問題なく機能した唯一の解決策は onTouch() ですが、キーボード ナビゲーションとプレス/ホバー効果が期待どおりに機能するように、実際のボタンを使用し続けたいと思います。

ボタンを配置して、常にビットマップとスケールを一致させるにはどうすればよいですか? 洞察をありがとう。

タイトルのせいで、この質問はだまされたように見えますが、これを達成する方法を示すものは見つかりませんでした。

4

2 に答える 2

2

私はこの問題を抱えていて、それを回避する方法を計算しました。かなりひどいですが、背景画像が 500x500px で、ボタンが (100, 100) にあり、その背景画像に対して 50x50px のサイズであるとします。レイアウトするときは、現在のデバイスのサイズを取得する必要があります。たとえば、サイズが 700x800px であるとします (これらのデバイスはおそらく存在しません)。この場合、ボタンの幅を (700/500)*50px に、高さを (800/500)*50px に設定する必要があります。ボタンの位置は (700/500)*100 と (800/500)*100 になります。

背景画像でボタンをほぼスケーリングしています。うまくいけば、私は自分自身を明確にしています:)

于 2013-12-03T16:46:54.347 に答える
0

これを試すことができます。

<ImageButton
android:id="@+id/notificationform_btn_Approve"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:src="@drawable/btn_approve"
android:onClick="btnApprove_Click" />

ここを見てください

代わりに ImageButton を使用しないのはなぜですか。

<ImageButton android:src="@drawable/greybutton"
        android:scaleType="fitCenter" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

その後、scaleType 属性でスケーリングを調整できます。唯一の欠点は、テキストを設定できないことです。幸運を

于 2013-11-15T10:35:57.597 に答える