我正在构建一个应用程序,我需要在主菜单中设置动画背景。 我已经能够创建动画但现在的问题是按钮(用于菜单)不可见。我的猜测是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();
}
动画显示但按钮不显示。 谁能解释我做错了什么?
答案 0 :(得分:1)
这是因为你LinearLayout
是该任务的错误容器。使用RelativeLayout
作为主要容器。将您的动画作为该布局中的第一个孩子,将您的按钮(或其容器)作为最后一个。根据您的意愿和您完成的位置。