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

来源:互联网 发布:淘宝我的空间 编辑:程序博客网 时间:2024/05/29 03:51
/**     * 新增显示轮播文字     *     * @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);        }    }
0 0