0

SPen 用の Android アプリケーションを開発しています。LinearLayout内の下部メニューをReletiveLayout内のSCanvasViewの下に表示するのに問題があります。canvas_container の高さを特定のサイズに設定すると、下部のメニューを表示できるため、canvas_container 内で設定した属性である必要があります。

下のメニューに与えている属性は android:layout_alignParentBottom="true" です。

レイアウトを単純化するには、上部と下部 (両方とも ImageView を含む) にメニュー バーを配置し、その間のスペースをSCanvasViewImageView (両方とも同じサイズ) で埋めたいだけです。

単純化されたコードを次に示します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">    

    <LinearLayout
        android:id="@+id/menu1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">                               
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_top1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/topimage1"
            android:layout_weight=".25"/>
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_top2"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/topimage2"
            android:layout_weight=".25"/>           
    </LinearLayout>

    <LinearLayout 
        android:id="@+id/menu4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="1.0"
        android:layout_alignParentBottom="true">  
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_bottom1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/bottomimage1"
            android:layout_weight=".25"/>
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_bottom1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/bottomimage1"
            android:layout_weight=".25"/>
    </LinearLayout>

    <RelativeLayout 
        android:id="@+id/canvas_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.samsung.spensdk.SCanvasView 
            android:id="@+id/canvas_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <ImageView
            android:id="@+id/imgView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"/>
    </RelativeLayout>

</RelativeLayout>
4

1 に答える 1

1

私は誤解していると思いますが、この状況でLinearLayoutは垂直方向のorientationほうがおそらく良いでしょう。このように使えますweightSumweightSumを 4 に設定してから、各LinearLayoutメニューの重みを 1 に、RelativeLayout重みを 2 に設定するか、必要に応じて調整します。

プロパティRelativeLayoutがないことにも注意してください。orientationを使用しweightsweightSumfor widtheachViewをfor にして0 dpforhorizontal orientationheight設定する0dp場合vertical orientation

于 2013-05-29T18:06:40.917 に答える