我有下一个观点:
我希望它看起来像这样:
在第一个中,绿色ImageButton的背景位于左上角。 在第二个中,绿色ImageButton的背景位于中心。 (背景图像的大小为绿色方块)
这是我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageButton android:id="@+id/dialer"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btncall"
android:scaleType="centerInside"/>
<Button android:id="@+id/sendSMS"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send SMS"/>
<Button android:id="@+id/four"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button android:id="@+id/shutDownDevice"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Turn Off"/>
</RelativeLayout>
哪里
android:background="@drawable/btncall"
指的是如下所示的btncall.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/phone_down"
android:state_pressed="true" />
<item android:drawable="@drawable/phone_down"
android:state_focused="true" />
<item android:drawable="@drawable/phone_up" />
</selector>
我是Android的初学者,所以如果你看到更好的方法来创建这个wiew,请告诉我。
10倍, 莱恩。
在Addtion中,这是主Java文件中代码的一部分:
...
//Get width and Height of screen
Display display = getWindowManager().getDefaultDisplay();
int halfStageWidth = display.getWidth()/2;
int halfStageHeight = display.getHeight()/2;
//Get an instance of the Dialer button
ImageButton btnDialer = (ImageButton) findViewById(R.id.dialer);
Button btnSendSMS = (Button) findViewById(R.id.sendSMS);
btnSendSMS.setWidth(halfStageWidth);
btnSendSMS.setHeight(halfStageHeight);
Button btnShutDownDevice = (Button) findViewById(R.id.shutDownDevice);
btnShutDownDevice.setWidth(halfStageWidth);
btnShutDownDevice.setHeight(halfStageHeight);
Button B4 = (Button) findViewById(R.id.four);
B4.setWidth(halfStageWidth);
B4.setHeight(halfStageHeight); ...
答案 0 :(得分:3)
你这样做的方式过于复杂,只能通过XML完成而不需要java代码。
您的XML应该是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/dialer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/btncall"
android:background="@android:color/transparent"
android:scaleType="centerInside"
android:layout_weight="1"/>
<Button
android:id="@+id/sendSMS"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Send SMS"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="horizontal" >
<Button
android:id="@+id/four"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<Button
android:id="@+id/shutDownDevice"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Turn Off"
android:layout_weight="1"/>
</LinearLayout>
答案 1 :(得分:0)
您尚未设置图像按钮的大小,因此它会包裹图像。你应该设置尺寸,它应该在按钮内。
更新
您可以设置如下布局大小:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width,height);
// Add relativeLayout rules here
btnDialer.setLayoutParams(params);