付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android怎么实现自定义View仿探探卡片滑动效果
这篇文章主要讲解了“Android怎么实现自定义View仿探探卡片滑动效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着在下的思路慢慢深入,一起来研究和学习“Android怎么实现自定义View仿探探卡片滑动效果”吧!Android自定义View仿探探卡片滑动这种效果网上有很多人已经讲解了实现思路,大多都用的是RecyclerView来实现的,但是我们今天来换一种实现思路,只用一个自定义的ViewGroup来搞定这个实现。下面我们先看一下实现的效果:
这个自定义View用法也很简单,首先从github上下载或者fork这个项目,在布局中添加:<com.liyafeng.view.swipecard.SwipeCardLayout
android:id="@+id/scl_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"/>是的,没有一点废话,自定义属性可以根据自己的需求来添加。下面是代码中初始化:public
class
SwipeCardActivity
extends
Activity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe_card);
SwipeCardLayout
scl_layout=(SwipeCardLayout)findViewById(R.id.scl_layout);
Queue<CardEntity>
data
=
new
LinkedList<>();
CardEntity
cardEntity1
=
new
CardEntity(R.drawable.f1,
"这里是美丽的湖畔");
CardEntity
cardEntity2
=
new
CardEntity(R.drawable.f2,
"这里游泳比较好");
CardEntity
cardEntity3
=
new
CardEntity(R.drawable.f3,
"向往的蓝天白云");
CardEntity
cardEntity4
=
new
CardEntity(R.drawable.f4,
"繁华的都市");
CardEntity
cardEntity5
=
new
CardEntity(R.drawable.f5,
"草原象征着理想");
data.add(cardEntity1);
data.add(cardEntity2);
data.add(cardEntity3);
data.add(cardEntity4);
data.add(cardEntity5);
scl_layout.setAdapter(new
SwipeCardLayout.CardAdapter<CardEntity>(data)
{
@Override
public
View
bindLayout()
{
return
LayoutInflater.from(SwipeCardActivity.this).inflate(R.layout.card_layout,null);
}
@Override
public
void
bindData(CardEntity
data,
View
convertView)
{
ImageView
iv_card
=
(ImageView)convertView.findViewById(R.id.iv_card);
TextView
tv_card
=
(TextView)
convertView.findViewById(R.id.tv_card);
iv_card.setImageResource(data.resId);
tv_card.setText(data.content);
}
});
scl_layout.setOnSwipeListener(new
SwipeCardLayout.OnSwipeListener()
{
@Override
public
void
onSwipe(int
type)
{
switch
(type)
{
case
SwipeCardLayout.TYPE_RIGHT:
Toast.makeText(SwipeCardActivity.this,
"right",
Toast.LENGTH_SHORT).show();
break;
case
SwipeCardLayout.TYPE_LEFT:
Toast.makeText(SwipeCardActivity.this,
"left",
Toast.LENGTH_SHORT).show();
break;
}
}
});
}
class
CardEntity
{
public
CardEntity(int
resId,
String
content)
{
this.resId
=
resId;
this.content
=
content;
}
public
int
resId;
public
String
content;
}
}这里必须要用一个队列来添加数据,显示的顺序就是队列的顺序。完整的代码已经上传github接下来简单说一下实现原理,我们用两个自定义的ViewGroup来定义两个Card,一个在上,一个在下,且重写它的onTouchEvent()方法,来实现跟随手指来滑动。当我们松开手指的时候,如果Card移动的距离短,那么就执行动画将Card重置到原来位置,如果移动的距离比较远,我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季小升初班主任学习规划主题班会
- 2026及未来5年中国寝具布艺数据监测研究报告
- 2026及未来5年中国大理石粘结剂数据监测研究报告
- 2026年秋季中考冲刺誓师大会 拼搏当下成就未来
- 2026事业单位工勤技能-甘肃-甘肃保健按摩师一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南殡葬服务工四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南农机驾驶维修工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北汽车驾驶与维修员五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北图书资料员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-海南-海南舞台技术工三级(高级工)历年参考题库含答案详解3套试卷
- 2026年广西高考物理试题及答案
- 2026年中级注册安全工程师考试题库300道附参考答案(模拟题)
- 2026届高考化学一轮复习 基于2025课标修订的探讨与落实
- 医院广告标识制作设计方案投标方案(技术标)
- 凤凰机器人课件
- JJG(交通) 086-2007 后插式路面弯沉自动测试仪
- 2025年道路运输企业安全生产管理人员复训题库及答案
- 阳光房施工技术总结
- GB/T 46237-2025信息技术数字孪生能力成熟度模型
- 视频拍摄制作合同
- 全国矿业权评估师资格考试真题及答案矿业权评估实务
评论
0/150
提交评论