0

アプリに TabHost があり、テキストの代わりに画像を配置しようとしています。私の問題は、画像が実際のサイズではなく画面全体に伸びていることです。高さと幅で「wrap_content」を使用していますが、まだそれを行っています。同じ画像を「wrap_content」で他のウェアに入れると、問題ありません。タブだけが変です。それがどのように見えるかです:

ここに画像の説明を入力

このように見える代わりに:

ここに画像の説明を入力

それは私のコードです:

<TabHost
    android:id="@+id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

           <TabWidget
               android:id="@android:id/tabs"
               android:layout_width="wrap_content"
               android:layout_height="60dp"
               android:gravity="center_vertical"
               android:showDividers="none" >

            </TabWidget>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:id="@+id/tab1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="start" />

                <Button
                    android:id="@+id/button2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="stop" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="first tab" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/tab2"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                 <Button
                    android:id="@+id/button3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="second tab B" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Secont tab" />

            </LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost>

ありがとう!

4

4 に答える 4

2

次のようなJavaコードから画像ビューをスケーリングしてみることができます;

yourImageView.setScaleType(ScaleType.CENTER);

またはこのような XML から;

android:scaleType="fitCenter"
于 2012-08-08T07:44:23.840 に答える
1

9 パッチ イメージを使用する必要があります。

これは、9 パッチ イメージの作成に役立つガイドです。 http://radleymarx.com/blog/simple-guide-to-9-patch/

于 2012-08-08T07:59:19.417 に答える
1

次のように Relative-layout を使用して修正しました。

<TabHost
    android:id="@+id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.8" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.1" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="false"
                android:layout_centerHorizontal="true"
                android:gravity="center_vertical"
                android:showDividers="none" >
            </TabWidget>

        </RelativeLayout>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.9" >

            <LinearLayout
                android:id="@+id/tab1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <Button
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="start" />

                <Button
                    android:id="@+id/button2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="stop" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="first tab" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/tab2"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                 <Button
                    android:id="@+id/button3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="second tab B" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Secont tab" />

            </LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost>

とにかくありがとう!!

于 2012-08-08T07:58:07.307 に答える
1

非常に遅い答えです。あなたはもう気にしないと思いますが、他の誰かが気にするかもしれません。

ここに別のリンクがあります

9 パッチ ジェネレーターを使用すると、指定したソース アートワークに基づいて、さまざまな画面密度で単純な 9 パッチをすばやく生成できます。

これに問題がある場合は、こちらをご覧ください。CommonsWare Answerを読んでください。

于 2014-06-23T13:28:07.827 に答える