居中+循环滚动的listview(1)
来源:互联网 发布:python 矩阵乘法 编辑:程序博客网 时间:2024/05/21 21:45
之前写过一篇用scrollview实现居中滚动效果的,考虑到listview的列表项的拓展性可能更加好,所以尝试使用listview来实现这个效果,并且加入了循环滚动。
先来看看效果图:
源文件就只有这3个:
以下是用到的2个布局文件activity_main.xml :
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.example.mylistview.MyListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout>
list_item:
<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp" android:focusable="true" android:gravity="center"/>
然后是主activity,简单的获取资源并绑定数据:
package com.example.mylistview;import java.util.ArrayList;import java.util.List;import java.util.TimerTask;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.widget.ListView;public class MainActivity extends Activity {private MyListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (MyListView) findViewById(R.id.lv);listView.setAdapter(new MyAdapter(this, getData()));//移到列表中间listView.setSelection(Integer.MAX_VALUE/2);}private List<String> getData() {List<String> data = new ArrayList<String>();for(int i=0;i<20;i++){data.add("测试数据"+Integer.toString(i));}return data;}}
自定义的adapter继承baseadapter:
package com.example.mylistview;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class MyAdapter extends BaseAdapter {private Context context;private List<String> data;public MyAdapter(Context context, List<String> data) {this.context = context;this.data=data;}@Overridepublic int getCount() {return Integer.MAX_VALUE; //基本可以认为有无穷多项,从而实现循环。}@Overridepublic Object getItem(int position) {return data.get(position%data.size());}@Overridepublic long getItemId(int position) {return position%data.size();}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//这里是一个缓存的机制,不多说。ViewHolder holder;if (convertView == null) {holder = new ViewHolder();convertView = LayoutInflater.from(context).inflate(R.layout.list_item, null);holder.title = (TextView) convertView.findViewById(R.id.title);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}holder.title.setText(data.get(position%data.size()));//循环读取数据return convertView;}static class ViewHolder {public TextView title;}}
篇幅有限,先说到这里。
居中+循环滚动的listview(2)点击打开链接
1 0
- 居中+循环滚动的listview(1)
- 居中+循环滚动的listview(2)
- 居中滚动的scrollview
- 居中滚动的Recyclerview
- Android ListView实现无限循环滚动
- android listview 的滚动
- Listview的滚动方式
- 横向滚动的ListView
- 不可滚动的ListView
- 循环滚动的图片
- UIScrollView的循环滚动
- ViewPager 的循环滚动
- ListView居中
- 滚动视图的自动循环滚动
- 控制ListView的自动滚动
- 实现ListView的弹性滚动
- 横向ListView的自动滚动
- 水平方向滚动的listview
- jsp webshell代码
- python笔记--廖雪峰站学习笔记(二)
- ubuntu安装php7.0.3遇到的问题
- leetcode 9. Palindrome Number
- itext 处理中文问题 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized 版本问题
- 居中+循环滚动的listview(1)
- Android Service的学习和总结
- Linux学习笔记--ln命令(链接命令)
- 判断一个字符串包含某个字符/截取指定字符窜
- 正则表达式
- 大数据课程体系-学习笔记-第一阶段-Java Base
- view 的 measure方法
- 一句Python命令启动一个Web服务器
- Hibernate的一级缓存简介