0

我正在构建一个应用程序,我需要在主菜单中使用动画背景。我已经能够创建动画,但现在的问题是按钮(用于菜单)不可见。我的猜测是 ImageView (用于动画)在按钮之上。

我已经尝试使用 bringToFront() 将按钮置于顶部,但它不起作用。也许布局有问题?

这是我的布局文件:

 <?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="500dp"
    android:background="#000000"
    android:orientation="vertical" >

   <ImageView
        android:id="@+id/imageChange"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/button" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/buttonView"
        android:orientation="vertical"
      >

    <Button
        android:id="@+id/start"
        android:layout_width="150dp"
        android:layout_height="45dp"
        android:layout_gravity="center"
        android:layout_marginTop="55dp"
        android:background="@drawable/states"
        android:text="Start" />

    <Button
        android:id="@+id/ch_select"
        android:layout_width="150dp"
        android:layout_height="45dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/states"
        android:text="Character Select" />

    <Button
        android:id="@+id/options"
        android:layout_width="150dp"
        android:layout_height="45dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/states"
        android:text="Options" />

    <Button
        android:id="@+id/about"
        android:layout_width="150dp"
        android:layout_height="45dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/states"
        android:text="About" />

    <RelativeLayout
        android:id="@+id/relative"
        android:layout_width="fill_parent"
        android:layout_height="200dp" >

        <Button
            android:id="@+id/facebook"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginLeft="90dp"
            android:layout_marginTop="50dp"
            android:background="@drawable/fb_button" />

        <Button
            android:id="@+id/twitter"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignBaseline="@+id/facebook"
            android:layout_alignBottom="@+id/facebook"
            android:layout_marginLeft="38dp"
            android:layout_toRightOf="@+id/facebook"
            android:background="@drawable/twit_button" />
    </RelativeLayout>

    </LinearLayout>

</LinearLayout>

和Java代码:

public class Menu extends Activity {
Button start,chSelect,opt,about,fb,twit;
ImageView image;
AnimationDrawable aniframe; 
LinearLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.startup_background);
start= (Button) findViewById(R.id.start);
chSelect= (Button) findViewById(R.id.ch_select);
opt= (Button) findViewById(R.id.options);
about= (Button) findViewById(R.id.about);
fb= (Button) findViewById(R.id.facebook);
twit= (Button) findViewById(R.id.twitter);
image= (ImageView) findViewById(R.id.imageChange);
layout= (LinearLayout) findViewById(R.id.buttonView);
layout.bringToFront();

image.setBackgroundResource(R.drawable.animation);
aniframe= (AnimationDrawable) image.getBackground();
aniframe.start();
    }

动画显示,但按钮不出现。谁能解释我做错了什么?

4

1 回答 1

1

这是因为您LinearLayout是该任务的错误容器。用作RelativeLayout您的主要容器。将您的动画作为该布局中的第一个子项,并将您的按钮(或其容器)作为最后一个子项。按照你的意愿定位,你就完成了。

于 2013-08-20T21:16:11.523 回答