在我的示例应用中,我尝试使用以下代码动态创建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>
Jave代码
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;
}
}
截屏
答案 0 :(得分:1)
您的问题的解决方案是在可绘制目录中使用Bitmap
,如下所示。
创建an xml bitamp
文件,在可绘制目录中将其命名为button_background.xml
,并放置以下代码。
<?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" />
Bingo ..这不会拉伸你的形象。