每个列表行的Alpha动画

时间:2013-12-12 10:42:25

标签: android xml animation alpha

我想设置一个背景可绘制到列表视图的第一个元素,也可以设置列表视图的其他元素我想设置相同的drawable但它应该很少褪色。我不想为此使用两个图像。

我尝试使用Alpha动画: 在我的列表视图的getView中,我使用了这个:

            Animation animation  = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha_anim);

            if (position == 0) {

                list_row_layout.setBackgroundResource(R.drawable.bg_image);

            } else {
                list_row_layout.setBackgroundResource(R.drawable.bg_image);


                animation.setDuration(0);
                animation.setFillAfter( true );



                if (list_row_layout != null){

                    list_row_layout.startAnimation(animation);
                } 

            }

这是我的alpha_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="0.5"
android:duration="1000" />

问题是它工作正常,但动画也应用于第0个元素。 我尝试取消动画if(position == 0)但它不起作用。

我需要知道我们可以单独将Alpha动画应用于每个ListRow元素吗?

2 个答案:

答案 0 :(得分:1)

查看包含ListViewAnimationAlphaAnimation以查看ListView中的项目列表。

用户AlphaAnimation课程如下所示,对您的ListView

应用Alpha效果
  private void setAlphaAdapter() {
    AnimationAdapter animAdapter = new AlphaInAnimationAdapter(mAdapter);
    animAdapter.setAbsListView(getListView());
    getListView().setAdapter(animAdapter);
}

答案 1 :(得分:0)

为什么要动画呢?你试过setAlpha吗?

哦,关于第一个元素,为pos == 0添加setAlpha(1f)。我认为它可能与重用元素有关...