在动画背景上添加按钮(Android XML)

时间:2013-08-20 21:08:58

标签: android xml button imageview

我正在构建一个应用程序,我需要在主菜单中设置动画背景。 我已经能够创建动画但现在的问题是按钮(用于菜单)不可见。我的猜测是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();
    }

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

1 个答案:

答案 0 :(得分:1)

这是因为你LinearLayout是该任务的错误容器。使用RelativeLayout作为主要容器。将您的动画作为该布局中的第一个孩子,将您的按钮(或其容器)作为最后一个。根据您的意愿和您完成的位置。