探探
来源:互联网 发布:米卡有软件 编辑:程序博客网 时间:2024/06/07 03:00
探探首页的卡片的效果
效果图
首先我们要下载一个封装的类点击进入下载CarderLibrary 或者 https://github.com/wuzeqiang2017/CarderLibrary 地址
并且我们要和项目进行依赖 一下 。
还需要需要的是一个Gilder 的依赖
compile 'com.github.bumptech.glide:glide:3.7.0'
在assets中我们要 放入的是图片
布局的XMl 的 yanfshi 我们使用的 下载的封装好的类
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.baidu.carderdemo.MainActivity"> <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="#cd4827"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="搜索" android:textColor="#fff" android:textSize="17sp" /> <ImageView android:id="@+id/notify_change" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="right|center_vertical" android:padding="16dp" android:src="@drawable/download" /> </FrameLayout> <com.stone.card.library.CardSlidePanel android:id="@+id/image_slide_panel" android:layout_width="match_parent" android:layout_height="match_parent" app:bottomMarginTop="38dp" app:itemMarginTop="10dp" app:yOffsetStep="13dp" /></LinearLayout>
CardDataItem 一个类是属性的类
public class CardDataItem { String imagePath; String userName; int likeNum; int imageNum;}
综合 的代码
public class MainActivity extends FragmentActivity { private CardSlidePanel slidePanel; private CardSlidePanel.CardSwitchListener cardSwitchListener; private List<CardDataItem> dataList = new ArrayList<CardDataItem>(); private String imagePaths[] = {"file:///android_asset/wu1.jpg","file:///android_asset/guofucheng.jpg", "file:///android_asset/liudehua.jpg", "file:///android_asset/zhangxueyou.jpg", "file:///android_asset/lilianjie.jpg", "file:///android_asset/chenglong.jpg", "file:///android_asset/xietingfeng.jpg", "file:///android_asset/liyifeng.jpg", "file:///android_asset/huojianhua.jpg", "file:///android_asset/huge.jpg", "file:///android_asset/yangyang.jpg", "file:///android_asset/dilireiba.jpg", "file:///android_asset/mayun.png"}; // 12个图片资源 private String names[] = {"武泽强","郭富城", "刘德华", "张学友", "李连杰", "成龙", "谢霆锋", "李易峰", "霍建华", "胡歌", "杨洋", "迪丽热巴", "马云"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); slidePanel = (CardSlidePanel) findViewById(R.id.image_slide_panel); initView(); } private void initView() { // 1. 左右滑动监听 cardSwitchListener =new CardSlidePanel.CardSwitchListener(){ @Override public void onShow(int index) { Log.d("Card", "正在显示-" + dataList.get(index).userName); } @Override public void onCardVanish(int index, int type) { Log.d("Card", "正在消失-" + dataList.get(index).userName + " 消失type=" + type); } }; slidePanel.setCardSwitchListener(cardSwitchListener); // 2. 绑定Adapter slidePanel.setAdapter(new CardAdapter() { @Override public int getLayoutId() { return R.layout.card_item; } @Override public int getCount() { return dataList.size(); } @Override public void bindView(View view, int index) { Object tag = view.getTag(); ViewHolder viewHolder; if(null!=null){ viewHolder = (ViewHolder) tag; }else{ viewHolder = new ViewHolder(view); view.setTag(viewHolder); } viewHolder.bindData(dataList.get(index)); } @Override public Object getItem(int index) { return dataList.get(index); } @Override public Rect obtainDraggableArea(View view) { View contentView = view.findViewById(R.id.card_item_content); View topLayout = view.findViewById(R.id.card_top_layout); View bottomLayout = view.findViewById(R.id.card_bottom_layout); int left = view.getLeft()+ contentView.getPaddingLeft() + topLayout.getPaddingLeft(); int right = view.getRight() - contentView.getPaddingRight() - topLayout.getPaddingRight(); int top = view.getTop()+ contentView.getPaddingTop() + topLayout.getPaddingTop(); int button = view.getBottom() -contentView.getPaddingBottom() - bottomLayout.getPaddingBottom(); return new Rect(left , top , right , button); } }); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { prepareDataList(); slidePanel.getAdapter().notifyDataSetChanged(); } },500); // 3. notifyDataSetChanged调用 findViewById(R.id.notify_change).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appendDataList(); slidePanel.getAdapter().notifyDataSetChanged(); } }); }//随机显示 private void prepareDataList() { for (int i = 0; i < names.length; i++) { CardDataItem dataItem = new CardDataItem(); dataItem.userName = names[i]; dataItem.imagePath = imagePaths[i]; dataItem.likeNum = (int) (Math.random() * 10); dataItem.imageNum = (int) (Math.random() * 6); dataList.add(dataItem); } } //刷新界面 private void appendDataList() { for (int i = 0; i < 8; i++) { CardDataItem dataItem = new CardDataItem(); dataItem.userName = names[i]; dataItem.imagePath = imagePaths[i]; dataItem.likeNum = (int) (Math.random() * 10); dataItem.imageNum = (int) (Math.random() * 6); dataList.add(dataItem); } } class ViewHolder { ImageView imageView; View maskView; TextView userNameTv; TextView imageNumTv; TextView likeNumTv; public ViewHolder(View view) { imageView = (ImageView) view.findViewById(R.id.card_image_view); maskView = view.findViewById(R.id.maskView); userNameTv = (TextView) view.findViewById(R.id.card_user_name); imageNumTv = (TextView) view.findViewById(R.id.card_pic_num); likeNumTv = (TextView) view.findViewById(R.id.card_like); } public void bindData(CardDataItem itemData) { Glide.with(MainActivity.this).load(itemData.imagePath).into(imageView); userNameTv.setText(itemData.userName); imageNumTv.setText(itemData.imageNum + ""); likeNumTv.setText(itemData.likeNum + ""); } }}
可以打开demo中,找到相关的资料
下载Demo https://github.com/wuzeqiang2017/tantan
阅读全文
0 0
- 探探
- 探探 产品分析报告
- 探探 产品分析报告
- 探探javascript事件机制之先混脸熟
- 探探javascript事件机制之庖丁解牛
- Swift 版本很好的卡片切换效果基于ZLSwipeableView(类似于[陌陌点点][探探])
- 简单实现 流行社交APP (探探)(谁) 侧滑效果
- 使用com.lorentzos.swipecards创建Tantan探探,tinder般的翻卡片效果
- react native 学习之模仿”探探“实现豆瓣电影app部分功能
- 菜鸟带你仿APP之YP神器--《探探》(一)
- 51nod 与七无关的数
- shell编程快捷方法
- JavaScript 教程
- 数据结构—图论
- 自定义标签
- 探探
- 【数据结构】动态内存管理
- stm32f1/f2/f3/f4/l1的固件库下载
- 关于char[]类型的排序 和字符串在使用时可能char*更好用
- 用c语言写一个通讯录(初级版)
- 【JavaScript 】简介
- ch2-1
- Jni helloworld 图解
- 11月26