您的位置:首页 > 其它

Handler和属性动画实现TextView广告轮播效果

2016-11-09 16:43 337 查看
/**
* 新增显示轮播文字
*
* @param apiSpecialItem
*/
public void showHome8(ApiSpecialItem apiSpecialItem) {
String json = apiSpecialItem.getItemData();
final List<ItemDataHome8> itemData = JsonUtil.toBean(json, new TypeToken<List<ItemDataHome8>>() {
}.getType());

AddViewHolder addViewHolder = new AddViewHolder(context, R.layout.tab_home_item_home8);

View view = addViewHolder.getCustomView();
homeViewID.addView(view);

final TextView textView = (TextView) view.findViewById(R.id.tv);
textView.setText(itemData.get(0).getImage());

textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TToast.showShort(context, textView.getText().toString());
}
});

if (mHandler == null) {
mHandler = new Handler();
}

Runnable runnable = new Runnable() {
@Override
public void run() {
curremtIndex++;
if (curremtIndex > itemData.size() - 1) {
curremtIndex = 0;
}

Log.d("run", "run: ");
textView.setText(itemData.get(curremtIndex).getImage());

TranslateAnimation animIn = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, -100, Animation.RELATIVE_TO_SELF, 0);
animIn.setDuration(1000);

ObjectAnimator translationY = ObjectAnimator.ofFloat(textView, "translationY", 100, 0, 0, 0, 0, 0, 0, 0, -100).setDuration(3000);
translationY.start();
mHandler.postDelayed(this, 3000);
}
};

mHandler.postDelayed(runnable, 0);
}

//停止轮播,释放资源
public static void release() {
if (mHandler != null) {
Log.d("mHandler", "release: 停止轮播");
mHandler.removeCallbacksAndMessages(null);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐