您的位置:首页 > 其它

adapterViewFlipper 实现跑马灯效果使用动画出现的问题

2017-04-14 17:20 127 查看
adapterViewFlipper 实现跑马灯效果先上效果图



首先使用AdapterViewFlipper创建布局

<AdapterViewFlipper
android:id="@+id/avf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>


给AdapterViewFlipper创建适配器 和以前使用ListView一样 继承BaseAdapter

public class TextAdapter extends BaseAdapter {
private  String[] lst;

public TextAdapter(String[] lst) {
this.lst = lst;
}

@Override
public int getCount() {
return lst == null ? 0 : lst.length;
}

@Override
public Object getItem(int position) {
return lst[position];
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
//        TextView tv = new TextView(parent.getContext());
//        tv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
//        tv.setText(lst.get(position));
FlipperViewHolder holder;
if (convertView == null) {
holder = new FlipperViewHolder();
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_flipper, null);
holder.tv = (TextView) convertView.findViewById(R.id.flipper_tv);
holder.iv = (ImageView) convertView.findViewById(R.id.flipper_iv);
convertView.setTag(holder);
} else {
holder = (FlipperViewHolder) convertView.getTag();
}
holder.tv.setText(lst[position]);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(parent.getContext(), lst[position], Toast.LENGTH_SHORT).show();
}
});

return convertView;
}

class FlipperViewHolder {
TextView tv;
ImageView iv;
}

}


在使用的时候 特别注意使用动画效果时 一定要用属性动画 若使用Tween动画会报异常unknown animator name translater

在res 建立animator文件夹 然后创建上下滚动动画

flipper_in

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="y"
android:valueFrom="-100"
android:valueTo="0"
android:valueType="floatType"/>


flipper_out

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="y"
android:valueFrom="0"
android:valueTo="100"
android:valueType="floatType"/>


**说明:**anim文件夹下存放tween animation和frame animation;xml文件里只有scale、rotate、translate、alpha、set五个标签;在代码中使用AnimationUtils.loadAnimation()方法加载;使用mView.setAnimation(mAnimation)为mView加载动画;使用mView.startAnimation()开启动画;

animator文件夹下存放property animation,即属性动画,xml文件里有animator、objectAnimator和set三个标签;在代码中使用AnimatorInflater.loadAnimator()方法加载动画;使用mAnimation.setTarget(mView)为mView加载动画。使用mAnimation.start()开启动画

源码可以点击这里github链接

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  adapterVie