按钮下的动画可绘制

时间:2013-07-30 09:14:13

标签: android xml android-animation android-button animationdrawable

我已经搜索过堆栈溢出但仍然遇到此问题。

我想在我的应用上显示Button,使用AnimationDrawable作为我的背景。我关注了Android Dev页面(http://developer.android.com/guide/topics/graphics/drawable-animation.html)并且能够使动画生效。但是,我的按钮完全隐藏了。用户仍然可以单击它,但背景动画可视地隐藏它,就好像没有按钮一样。

我尝试了setAlpha,但将其应用到我的'AnimationDrawable'模糊了Drawable“电影卷中的3张图片”。此外,屏幕从黑色开始,需要很长时间才能逐渐达到设置的不透明度。它首先查看它是一个内存问题,但截至目前,我的应用只有一个ActivityButton导致另一个Activity

有谁知道如何让Button出现在AnimationDrawable之上?或者是否有人有setAlpha减慢动画效果的经验?

以下是我的参考代码:

public class Main extends Activity {
Button start;
Intent intent= new Intent();
ImageView background;
AnimationDrawable animation;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    background= (ImageView) findViewById(R.id.imagehost);
    background.setBackgroundResource(R.drawable.anim);
    animation= (AnimationDrawable) background.getBackground();


    start= (Button) findViewById(R.id.start);

    start.setOnClickListener(new OnClickListener(){
        ...


} //end of onCreate

@Override
public void onWindowFocusChanged(boolean hasFocus){
    super.onWindowFocusChanged(hasFocus);
    animation.start();
    //animation.setAlpha(50); //doesn't help

}//end of onWindowFocusChanged

修改

layout xml(main.xml)代码:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/start"
        android:textSize="40sp" />

    <ImageView
        android:id="@+id/imagehost"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="58dp" />

animationdrawable.xml:

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/bgnd1" 
    android:duration="600" />
<item android:drawable="@drawable/bgnd2" 
    android:duration="600" />
<item android:drawable="@drawable/bgnd3"
     android:duration="600" />   


</animation-list>

1 个答案:

答案 0 :(得分:1)

交换<Button><ImageView>的位置。稍后在RelativeLayout中添加的元素,每个元素的z-index由添加到容器中的顺序确定。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >     

<ImageView
    android:id="@+id/imagehost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="58dp" />  
<Button
    android:id="@+id/start"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@string/start"
    android:textSize="40sp" />