ImageButton以编程方式定位

时间:2014-01-01 13:49:23

标签: android xml layout imagebutton

我正在使用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>

2 个答案:

答案 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);