仿火车出票效果
BaseAnimation 转载的链接:http://blog.csdn.net/vipzjyno1/article/details/20622621
发现里面有个火车票的出票效果,发现可以优化下:
BaseAnimation内的仿出票效果
可是它的出的票的布局高度啥都是写死的,通过这个思路,我便想到要做个类似于数据是通过网络获取,高度不一定的listview的订单出票效果。
一. 思路:
1)叠在布局上层的是订单信息,而在下层的就是订单内菜单的详细条目,详细条目的布局是置于布局最底层,并且在订单信息相对位置下方,这里使用了FrameLayout来处 理 详细条目布局。
2)出票的详细条目列表采用了LISTVIEW,它的动画初始位置要通过计算LISTVIEW的总高度进行计算获取,之后通过TranslateAnimation 进行Animation动画。
3)采用线程来模拟网络获取延迟的效果。
二. 碰到解决的问题:
1)碰到一个问题,就是如果数据一多,超过了一屏幕,在动画过程中动画衔接效果就很差,并有可能出现断层效果。
解决:通过重写ListView, 计算高度,并且在ListView 外面嵌套了一层ScrollView,这样便可以解决这样的问题。
2) 如果在订单信息布局下方直接放置一个LISTVIEW的话,这样,动画时候,LISTVIEW就会盖在订单信息上方。
解决:LISTVIEW外层一定要嵌套一层布局,并且设定在订单信息下方,这样便不会产生上述问题。
3)由于订单底部
一开始就是出现的,并且在数据刷新后跟随LISTVIEW一起下滑。
解决:采用Listview的addFooterView(底部view)方法,把它添加到LISTVIEW底部,在开始添加完毕后就直接初始化让Listview.setAdapter(null);
这样便在开始底部就显示出来了。
4)如何去计算LISTVIEW的总高度
解决:本DEMO采用了2种方式,
第一种:鉴于订单中每个ITEM的布局都是固定的,于是在布局中设置ITEM的高度为固定值,之后乘以listAdapter.getCount() 加上分割线listView.getDividerHeight() 的总高度
第二种:如果每个ITEM的布局是高度是不一定的话,就会造成影响,便找了一些资料,使用了以下方法:
public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } totalHeight = 0; // 由于ADD了个footer,所以总量减去1 Log.d("listAdapter.getCount()", "" + listAdapter.getCount()); for (int i = 0, len = listAdapter.getCount() - 1; i len; i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); Log.d("getMeasuredHeight", "" + listItem.getMeasuredHeight()); } totalHeight = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
rivate void startAnimation() { anim = new TranslateAnimation(0.0f, 0.0f, -totalHeight, 0); anim.setDuration(1000); anim.setFillAfter(true); anim.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub cListview.clearAnimation(); } }); cListview.startAnimation(anim);
樱花飘落模拟器-情人节祝你表白成功 嗨!大家好,我是小蚂蚁。这是我去年做的一个漂亮的樱花飘落模拟器,你可以改编一下,然后发功给想你爱的人,祝你表白成功。
樱花飘落模拟器-请你看樱花静静的飘落 今天是一个美好的日子,所以小蚂蚁决定教大家用微信小游戏制作工具做一个温暖而美好的“樱花飘落模拟器”小程序,然后把它送给所爱的人。
教你用200行代码写一个爱豆拼拼乐H5小游戏(附源码) 本文将带大家一步步实现一个H5拼图小游戏,考虑到H5游戏的轻量级和代码体积,我没有使用react或vue这些框架,而采用我自己写的dom库和原生javascript来实现业务功能,具体库代码可见我的文章如何用不到200行代码写一款属于自己的js类库,构建工具我采用了自己搭建的gulp4开发项目脚手架。
继承 BaseAdapter 实现onCreateCenter(ViewGroup parent) onCreateChild(ViewGroup parent, T t)方法设置中心View,子View.
一入前端深似海,从此红尘是路人系列第十二弹之移动端模拟IOS虚拟按钮效果 用过苹果的大家都知道,苹果公司做了一个虚拟按钮,让页面上的挂件可被拖拽并吸附到屏幕边框处,降低挂件对用户的干扰。该效果如果用JavaScript进行实现又该如何实现呢,接下来我将分享给大家。首先上一张效果图
相关文章
- 用POP动画编写带富文本的自定义动画效果
- jQuery实现ie浏览器兼容placeholder效果
- 纯html上下翻滚效果公告板
- 64、具有过渡动画效果的布局Layout( 2 )
- easyui带表单的弹窗效果制作
- css3鼠标悬浮放大效果
- DL之BigGAN:利用BigGAN算法实现超强炸天效果——画风的确skr、skr、skr,太特么的skr了
- 机器学习(四十):随机搜索、网格搜索、遗传算法对机器学习模型寻优效果比较
- VB编程:仿QQ聊天框的抖动效果-58_彭世瑜_新浪博客
- android自己定义ViewPager之——3D效果应用
- Android 下拉刷新上拉载入效果功能
- 用shape结合selector实现点击效果
- <!>字体效果
- Vue实现淘宝商品放大镜效果
- 【深度学习】MLP/LeNet/AlexNet/GoogLeNet/ResNet在三个不同数据集上的分类效果实践