安卓仿淘宝头条数据上下自动滚动
来源:互联网 发布:java视频模糊 编辑:程序博客网 时间:2024/05/07 16:08
其实实现逻辑就是一个自定义的view,在加上指定的动画就可以;
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="match_parent" android:layout_height="50dp" android:background="#f1f1f1" android:gravity="center_vertical|center_horizontal" android:text="PonyProject" /> <RelativeLayout android:id="@+id/noti_real_pre" android:layout_width="fill_parent" android:layout_height="60dp" android:orientation="vertical" android:paddingLeft="10dp" > <ImageView android:id="@+id/adt_type" android:layout_width="100dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginBottom="1px" android:layout_marginTop="1px" android:clickable="false" android:focusable="false" android:paddingBottom="2dp" android:paddingLeft="@dimen/dp_5" android:paddingRight="@dimen/dp_10" android:paddingTop="2dp" android:src="@drawable/icon_activity" /> <View android:id="@+id/mView" android:layout_width="0.5dp" android:layout_height="15dp" android:layout_centerVertical="true" android:layout_toRightOf="@id/adt_type" android:background="#e5e5e5" android:clickable="false" android:focusable="false" > </View> <com.pony.view.UPMarqueeView android:id="@+id/sl_activity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/mView" android:clickable="false" android:focusable="false" /> </RelativeLayout> <View android:layout_width="fill_parent" android:layout_height="1px" android:background="#cccccc" /></LinearLayout>
显示滚动内容的布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:id="@+id/rl" android:layout_width="match_parent" android:gravity="center_vertical" android:layout_height="43dp"> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/title_tv1" android:ellipsize="end" android:focusable="false" android:clickable="false" android:textColor="@color/check_more_topic" android:textSize="14sp" android:maxLines="1" /> <TextView android:layout_width="wrap_content" android:layout_toRightOf="@id/sl_activity" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:text="HOT" android:focusable="false" android:clickable="false" android:textSize="10dip" android:layout_centerVertical="true" android:padding="2dp" android:textColor="#ffffff" android:background="@drawable/selected_selector" /> </LinearLayout></LinearLayout>
自定义view文件:
package com.pony.view;import java.util.List;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ViewFlipper;import com.pony.R;/** * 仿淘宝首页的 淘宝头条滚动的自定义View * * Created by mengwei on 2016/7/20. */public class UPMarqueeView extends ViewFlipper { private Context mContext; private boolean isSetAnimDuration = false; private int interval = 3000; /** * 动画时间 */ private int animDuration = 500; public UPMarqueeView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs, 0); } private void init(Context context, AttributeSet attrs, int defStyleAttr) { this.mContext = context; setFlipInterval(interval); Animation animIn = AnimationUtils.loadAnimation(mContext, R.anim.anim_marquee_in); if (isSetAnimDuration) animIn.setDuration(animDuration); setInAnimation(animIn); Animation animOut = AnimationUtils.loadAnimation(mContext, R.anim.anim_marquee_out); if (isSetAnimDuration) animOut.setDuration(animDuration); setOutAnimation(animOut); } /** * 设置循环滚动的View数组 * * @param views */ public void setViews(final List<View> views) { if (views == null || views.size() == 0) return; removeAllViews(); for ( int i = 0; i < views.size(); i++) { final int position=i; /** * 这边的监听事件是对滚动的每一条的点击事件,在使用的时候可以打开,但是在打开的时候会获取此布局的焦点,导致外层的事件不能够点击,所以在使用的时候要注意 */ // //设置监听回调// views.get(i).setOnClickListener(new OnClickListener() {// @Override// public void onClick(View v) {// if (onItemClickListener != null) {// onItemClickListener.onItemClick(position, views.get(position));// }// }// }); addView(views.get(i)); } startFlipping(); }//// /**// * 点击// */// private OnItemClickListener onItemClickListener;//// /**// * 设置监听接口// * @param onItemClickListener// */// public void setOnItemClickListener(OnItemClickListener onItemClickListener) {// this.onItemClickListener = onItemClickListener;// }//// /**// * item_view的接口// */// public interface OnItemClickListener {// void onItemClick(int position, View view);// }}
主Activity文件:
package com.pony;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.LinearLayout;import android.widget.TextView;import com.pony.view.UPMarqueeView;public class MainActivity extends Activity {private String flag = "log_message";/** * 设置显示的view */List<View> views = new ArrayList<View>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);UPMarqueeView ts_activity = (UPMarqueeView) findViewById(R.id.sl_activity);setView();ts_activity.setViews(views);}/** * 设置布局文件 */private void setView() {for (int i = 0; i < 3; i++) {final int position = i;// 设置滚动的单个布局LinearLayout moreView = (LinearLayout) LayoutInflater.from(MainActivity.this).inflate(R.layout.item_view, null);// 初始化布局的控件TextView tv1 = (TextView) moreView.findViewById(R.id.tv1);// 进行对控件赋值tv1.setText("Pony第"+i+"个信息");// 添加到循环滚动数组里面去views.add(moreView);}}}
源码供大家学习:
http://download.csdn.net/detail/u014388322/9643727
1 0
- 安卓仿淘宝头条数据上下自动滚动
- 类似淘宝头条,走马灯上下滚动
- lab上下滚动,类似淘宝上的头条
- 仿天猫热点,淘宝头条向上自动滚动的textview
- 仿天猫热点,淘宝头条向上自动滚动的textview
- Android仿淘宝头条基于TextView实现上下滚动通知效果
- Android仿淘宝滚动的头条
- Android仿淘宝滚动的头条
- 仿淘宝首页的淘宝头条View垂直滚动
- 仿淘宝首页的淘宝头条View垂直滚动
- 仿淘宝首页的淘宝头条View垂直滚动
- 仿淘宝首页的淘宝头条View垂直滚动
- 仿淘宝首页的淘宝头条垂直滚动
- 仿淘宝首页的淘宝头条垂直滚动
- 仿淘宝首页的淘宝头条View垂直滚动
- TextView文字上下滚动轮播 类似淘宝头条
- 【Android 进阶】淘宝头条:向上滚动广告条ViewFlipper
- Android【垂直滚动广告条】仿淘宝头条1号店京东—垂直滚动广告条
- 中共中央举行学习《胡锦涛文选》报告会 习近平发表重要讲话
- Zookeeper(1)-Zookeeper是什么
- IT职场,技能比情商重要N倍
- 背包问题---非递归算法
- Android快速关联V4包的方式
- 安卓仿淘宝头条数据上下自动滚动
- JavaScript之模块化编程(一)
- java中的package/import概念
- 大牛养成指南(1):吃的草够多,你也能成为大牛
- QTP10.0安装破解图解
- C++文件读写详解(ofstream,ifstream,fstream)
- UML—交互图(序列图、协作图)
- 一点资讯后端方向工程师笔试题第二批
- HTML转义字符