0

私のサンプル アプリではButton、以下のコードを使用して動的に作成しようとしています。すべて正常に動作しますが、背景画像をボタンに設定すると、画像が楕円形になることに気付きます。しかし、実際の画像は円形です。なぜこれが起こるのですか、私のコードで何かすることはありますか? これを解決するのを手伝ってください。

main.xml ファイル

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/calendar_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical" >

    <ViewFlipper
        android:id="@+id/flipview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:background="#ffffff">

        <LinearLayout
            android:id="@+id/liVLayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="vertical" >
        </LinearLayout>
    </ViewFlipper>

</RelativeLayout>

ジャブコード

public class MainActivity extends Activity 
{
    private Button[][]          m_pBtnDay; 
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        m_pBtnDay = new Button[6][7];
        
        initDay();
    }
    
    public boolean initDay()
    {
        LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout);
        LinearLayout rowLayout = null;
        
        LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1);

        for (int i = 0; i<6; i++)
        {
            rowLayout = new LinearLayout(this);
            rowLayout.setWeightSum(7);
            
            layoutVertical.addView(rowLayout, param);
            
            for(int j=0; j<7; j++)
            {
                m_pBtnDay[i][j] = new Button(this);             
                m_pBtnDay[i][j].setTextSize(15);    
                m_pBtnDay[i][j].setBackgroundResource(R.drawable.theme1_cal_button_selected);
                rowLayout.addView(m_pBtnDay[i][j], param);                                                          
            }                           
        }                       
        
        return true;
    }       
}

スクリーンショット

ここに画像の説明を入力

4

1 に答える 1

1

問題の解決策は、Bitmap次のような描画可能なディレクトリで使用することです。

an xml bitampファイルを作成しbutton_background.xml、drawable ディレクトリに名前を付けて、次のコードを短くします。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_launcher"
    android:tileMode="disabled" android:gravity="top" >
</bitmap>

ic_launcher画像を自分のものに置き換えます。次に、背景画像を使用する代わりに、次のコードを使用します。

<Button
    android:id="@+id/buttonok"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_background"
    android:text="your Text" />

ビンゴ..これはあなたのイメージを引き延ばしません。

于 2013-09-17T06:38:38.913 に答える