我正在使用XML进行布局,但我需要以编程方式定位ImageButton。谁能让我知道怎么做?
XML
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainScreenLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/mainScreenImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/screenimage"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/titleview"
android:background="#00000000"
android:adjustViewBounds="true"
android:src="@drawable/buttonstart"/>
</FrameLayout>
答案 0 :(得分:0)
我认为LayoutParams可以正常工作 试试这段代码
Button button = (Button)findViewById(R.id.my_button);
AbsoluteLayout.LayoutParams absParams =
(AbsoluteLayout.LayoutParams)button.getLayoutParams();
absParams.x = myNewX;
absParams.y = myNewY;
button.setLayoutParams(absParams);
如果要在其上设置图像,请使用setBackgroundResources属性
button.setBackgroundResource(R.drawable.new_image);
答案 1 :(得分:0)
首先,使用FrameLayout将ImageButton包装为
....
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/titleview"
android:background="#00000000"
android:adjustViewBounds="true"
android:src="@drawable/buttonstart"/>
</FrameLayout>
....
这不是必须的,要成为FrameLayout。 只需使用一些布局包装图像。但对于其他布局,使用X和Y进行定位会有所不同。
现在,我可以将ImageButton的位置更改为
FrameLayout mFrame=(FrameLayout) findViewById(R.id.frameLayout1);
mFrame.setPadding(fromLeftX, fromTopY, fromRight, fromBottom);