ImageView隐藏在Button背后的想法

时间:2015-06-19 21:13:19

标签: android button imageview

我有一个ImageView在屏幕上移动但是一旦它到达一个按钮,它就会跟在它后面,ImageView就会隐藏起来。它们采用不同的布局。我尝试将ImageView和Layout都放在前面,并使按钮既不可见又透明(setAlpha(0))。不确定哪些代码会对此有所帮助,但只是问一下,我会很乐意发布所需的任何内容。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"  tools:context=".MainActivity"

android:id="@+id/relativeLayout1">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/friendly1"


    />
<Button

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/choice1"
    android:layout_weight="5"
    android:clickable="true"
    android:id="@+id/btnRow1"
    android:alpha="0"
    android:visibility="invisible"
    android:onClick="onClickRow1"/>
</LinearLayout>
</RelativeLayout>

然后在init()方法中:

 friendly1 = (ImageView) findViewById(R.id.friendly1);
 friendly1.bringToFront();

RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.relativeLayout1);
mainLayout.bringToFront();

1 个答案:

答案 0 :(得分:0)

您可以从父级中删除视图,然后在指定的索引处重新添加它们。这将允许您控制哪些视图位于其他视图的前面/后面。

int maxSubArraySum(int* arr, int n)
{
    if(n == 1)
    {
        return arr[0];
    }
    int m = n / 2;
    int left = maxSubArraySum(arr, m);
    int right = maxSubArraySum(arr + m, n - m);
    int leftsum = INT_MIN, rightsum = INT_MIN, sum = 0;

    for(int i = m; i < n; i++)
    {
        sum += arr[i];
        rightsum = std::max(rightsum, sum);
    }

    sum = 0;

    for(int i = (m - 1); i >= 0; i--)
    {
        sum += arr[i];
        leftsum = std::max(leftsum, sum);
    }

    int retval = std::max(left, right);
    return std::max(retval, leftsum + rightsum);    
}  

哪里有&#39;指数&#39;是要放置视图的索引的int值。具有较高指数的观点显示在具有较低指数的观点之上。

额外提示:如果需要,可以对要添加的所有视图使用相同的索引,首先添加的视图将显示在下一个添加的视图下方(因为ViewGroup的工作方式类似于ArrayList)。 / p>