为什么我的QQ像右滑是这样的?求律师在线解答qq!

我要QQ空间上看到的视频图片就是这样的,不知道是什么软件做的,求解答,记得上图,谢谢!, 我要QQ空间上看到的视频图片就
我要QQ空间上看到的视频图片就是这样的,不知道是什么软件做的,求解答,记得上图,谢谢!
匿名2-04 04:43 我要QQ空间上看到的视频图片就是这样的,不知道是什么软件做的,求解答,记得上图,谢谢!
美图秀秀,美颜相机。都可以做
热心网友 2-04 04:43flinggallery android 仿QQ 左右滑屏源码,可以点击按钮确定循环滑动
238万源代码下载-
&文件名称: flinggallery
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 18 KB
&&上传时间:
&&下载次数: 64
&&提 供 者:
&详细说明:android 仿QQ 左右滑屏源码,可以点击按钮确定循环滑动-failed to translate
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&FlingGallery\.classpath&&............\.project&&............\AndroidManifest.xml&&............\default.properties&&............\res\drawable-hdpi\icon.png&&............\...\.........ldpi\icon.png&&............\...\.........mdpi\icon.png&&............\...\layout\main.xml&&............\...\values\strings.xml&&............\src\com\droidful\flinggallery\FlingGallery.java&&............\...\...\........\............\FlingGalleryActivity.java&&............\...\...\........\flinggallery&&............\...\...\droidful&&............\res\drawable-hdpi&&............\...\drawable-ldpi&&............\...\drawable-mdpi&&............\...\layout&&............\...\values&&............\src\com&&............\assets&&............\res&&............\src&&FlingGallery
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - Android中listview仿qq群组向上滚动特效
&[] - 跟Android进行socket通信的计算机发送端
&[] - Android
ConversationTest程序
&[] - [Android实例] 自定义TAB的三种实现方式(图文并茂,不容错过)
&[] - 局域网聊天程序,仿QQ,界面做的很不错,是上学期操作系统的试验.
&[] - Android 实现侧边栏的滑动,以及程序的跳转和更换布局。
&[] - 通过手指的滑动放下,用于上下左右的滑动图片。
&[] - Android 旋转魔方
&[] - 这是Android平台下的水平滑动分页,高仿QQ微信开门效果。百度为何没有qq那样屏幕右滑就返回_国际米兰吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:812,870贴子:
百度为何没有qq那样屏幕右滑就返回
每次点左上 不方便 不人性化。这就是马化腾和李彦宏的差距么?包括市值。我的截图是这样。右滑 不动百度根本没对ios的用户做好用户体验。差的一比等谷歌彻底再次进来,李彦宏会不会末路
随后会放制作过程
筒子们,请容我平复下此...
万圣夜(英语:Hallowee...
前排熟悉吧友
此贴为吧友爆照评分贴,...
不知道能否镇的住
今年听到不少吧友们表示...
大家好~我是电影二组的...
此帖里星乔君教你怎么做...
186cm 大一 阳光开朗 喜...
97年双子不杂 处一个可...
第一次做,有什么建议和...
米兰国际家具,大规模一站式品质家居装修采购,下单返现5%,满2888可抽200-4999元.&上海家博会&家装/家居/建材/家电...&点击报名&邀请函免费寄到家!米兰国际家具.
马化腾和李彦宏之间差100个马云
那是因为你不用iPhone
为什么我的可以。。
为什么我可以?
我也可以啊
为什么我可以
优惠套票,2人起售,往返特惠,限时促销,先到先得.米兰启程,环游欧洲,Milano米兰世博会限时特惠,丰富航线网络,国航带您游欧洲.
为啥我是左滑
我为什么可以?
不行呢 我手机5s 刚刚看了也是贴吧最新版本
你从屏幕中间右滑试试,QQ就可以从屏幕中间右滑
我懂楼主的意思了 qq是屏幕任何地方右划都可以回到原来地方贴吧只有从最左边开始划
你看我左边那片白的,每一个帖子都这样,百度挺不用心的
你从左边划,我也是5s
安卓机表示从哪个地方滑都能返回
我大诺基亚可以
我的可以啊,中间边上都行,贴吧最恶心的是你不登陆帐号,什么都看不了
还好我的三星手机有返回键女的体重不过百,不是平胸就是矮,男的身高一米七,不是备胎就是基   --来自助手版贴吧客户端
就是从中间可以阿
从中间就能划得话你上下滑动如果不正就会不小心返回这是很操蛋的一件事,就跟在看长图的时候一样,还有你的手是多小连手机的左半边屏幕都够不到吗
以前用4S的时候,大多数应用,包括设置都可以直接右滑。后来换了6之后就只能从最右边滑了。
挽救了你自己。这世界上
贴吧热议榜
使用签名档&&
保存至快速回贴仿QQ列表左右滑动效果_郭霖_传送门
仿QQ列表左右滑动效果
今天这篇是 李政 的第二篇投稿,他之前的着实帮助一些朋友解决了问题。现在我的公众号里有不少作者都是回头客了,希望之前投稿过的作者们能多多回来混个脸熟,没投稿过的朋友们也可以踊跃尝试一下,加入这个大圈子当中。另外,本文尝试做出一些改变,这次使用视频来演示效果,视频很小,只有2M不到,期待大家的反馈。李政 的博客地址:http://blog.csdn.net/lz8362前言ListView 可以说是最常用的控件了,所谓在平凡中创建不平凡,各种 ListView 的衍生版本层出不穷。在商业应用中,一个 item 上堆放的信息不能太多,item 本身的作用在于提供给用户快速选择的权利,信息堆放太多,反而无法让用户快速决定,所以简洁明了才是真。但是对于一些在场景中必要的功能按键,就需要找到合适的放置位置,尤其是现在大家公司里的美工们都是缺乏激情的MM,多给她们提供一些布局选择,你脱单的希望就增大了一些。QQ列表的效果一开始并没有吸引我,直到我发现我的测试手机(联想S650)中通讯录列表的item也是可以左右滑动。我的好奇心才被激起了。下面就来讲讲怎么实现这个功能。先来个演示视频,看看效果:布局样式及构建我们把布局分成三部分:左侧布局,中央布局,右侧布局。中央布局就是在应用中用来正常展示,左侧和右侧布局是隐藏布局,样式如下:左侧布局,中央布局,右侧布局都是独立的布局,他们之间互不干扰。我们如何把它们组合起来呢,这就需要重写 onMeasure() 和 onLayout() 方法了,所以我们来自定义一个 FrameLayout 来放置这三个布局。因为我们需要的是一个滑动的效果,所以给这个自定义控件添加一个 Scroller 来管理滑动。这样基本属性和对象我们就搭建出来了:之所以设置 isLeftExist 和 isRightExist,是为了提高控件的利用率,缺少哪一个布局,就禁止相反方向的滑动。 也是对程序逻辑的一种保护。这个布局控件继承了 FrameLayout,在xml编辑器中布局时,我们都知道 FramgLayout 的特点,控件的顺序是从左向右依次放置的,所以我们在重写构造函数时,要调用 addView 把左中右三个布局按从左到右的顺序添加上。Scroller 作为滑动管理器,我们也需要在构造函数中声明,创建时我们可以选择传或者不传滑动插值器的类型,默认不传的话,就是匀减速插值器 DecelerateInterpolator,这里我设置为反弹插值器BounceInterpolator:接下来,我们先重写 onMeasure() 方法,onMeasure() 方法是用来计算布局的大小的,也是最先被调用的方法,只有知道的布局的大小,设备才能正常绘制出我们的布局。在这里我们不需要特别声明三部分布局的高宽,只需要声明宽是自适应,高为设备适应后的固定尺寸就行。这样做可以保证布局的正常展示,不会出现压缩现象。在声明过程中,我们需要使用 MeasureSpe.makeMeasureSpec 来指定宽高(这个方法是 onMeasure() 原有形参调用的方法,在这里我们要保持数据的一致性,所以也要使用这个方法),它需要两个参数,一个是 大小size,一个是 模式mode ,其中 MeasureSpec.UNSPECIFIED 表示当前模式为自适应,MeasureSpec.EXACTLY 表示当前模式为确定值或者是充满(match_parent)。下一步重写 onLayout() 方法,放置布局。因为手机屏幕左上方的位置是(0,0)点,屏幕左侧为负值,右侧为正值,而我们的左中右三个布局,必须要依次放置,View的layout() 方法中只使用的左上角和右下角的坐标,这样我们就可以得出左中右三布局的位置坐标:Scroller滑动设置首先明白一点,滑动的实际原理,就是布局坐标发生变化,在不断的重绘过程中,产生有规律的位移。这样我们就需要两个要点:本次重绘中,需要位移的距离。重绘的时机。很幸运,Scroller 提供给我们了滑动时的位置变化,滑动的样式,滑动的时机,以及滑动的结束判断标记,所以我们只要伺候好 Scroller 就行了。之前我们已经在构造函数中初始化了一个 Scroller 对象,下面为了让我们的控件可以滚动起来,我们需要重写控件的 computeScroll() 方法,顾名思义,是计算滑动距离的,这个方法在重绘时会被触发,但这个方法在 ViewGroup 中本身是没有具体操作,所以我们看不到什么变化。现在我们需要在这里重新获得当前位移的距离,并调用 postInvalidate() 进行重绘。位移的距离由 Scroller.getCurrX() 提供。这个方法可以实时获得当前移动轨迹下X轴的坐标变化。移动轨迹由 Scroller.startScroller() 触发,它有五个参数:滚动发起后,我们可以通过 computeScrollOffset() 来判断当前滚动是否结束,如果是,则为false,不是为true。有了坐标点的移动轨迹,我们就可以在滚动过程中不停地重新设置布局的坐标,重绘布局,从而实现视觉上的滚动效果。因为我们手指滑动的操作是左右滑动,所以在计算移动距离时,直接让布局移动 Scroller.getCurrX() 个距离就行,而当关闭布局时,直接移动
- 中央布局.getLeft() , 就是代码的 baseX - Scroller.getCurrX() 个距离就行,为什么取负值,因为负值表示是向相反的方向滑动。ListView的监听ListView 方面,我们只需要重写 onTouchEvent() 就行了,对用户触摸事件进行区分,同时为了实现上下滑动时恢复原来位置,我们需要分别记录当前视图和历史视图,当前位置和历史位置。在对应的 MotionEvent的Action() 中作如下操作:一、MotionEvent.ACTION_DOWN:获取当前的视图对应的位置,以及用户的点击点坐标。判断是否存在历史视图(即前期是否有未关闭的视图),若存在,先对历史视图进行归位操作。将当前视图备份到历史视图中。二、MotionEvent.ACTION_MOVE:判断滑动手势,是上下滑动还是左右滑动,如果是上下滑动,直接中断:判断原理:比较X轴点间距和2PX倍的Y轴点间距的大小,前者大于后者,是左右滑动;前者小于后者,是上下滑动。判断左右滑动的方向,计算滑动距离。先判断当前视图的状态标记,如果是关闭的:滑动距离 = 手指滑动距离;如果是准备展示左视图:滑动距离 = 手指滑动距离 - 待展开视图的宽;如果是准备展示右视图:滑动距离 = 手指滑动距离 + 待展开视图的宽;(为什么有加减区别,参看上方stratScroll参数解释)执行滑动操作。三、MotionEvent.ACTION_UP:作为点击状态的最后一步,这里我们需要根据当前视图的滑动状态,来做一下补偿操作。即判断当前隐藏的视图是否完全显示出来或隐藏掉。详细判断大家可在代码中看到。这里我考虑到的场景有如下几个:向左滑动:场景1、隐藏左侧菜单场景2、弹出右侧菜单场景3、隐藏左侧菜单后直接弹出右侧菜单向右滑动:场景1、隐藏右侧菜单场景2、弹出左侧菜单场景3、隐藏右侧菜单后直接弹出左侧菜单整个控件的开发思路就是这样了,对于滑动操作,没有什么复杂的,Android已经给你提供了 Scroller 来完成这一系列操作。我们可以按照如下的流程图,快速制作出项目中需要的控件:想要下载本文源码请点击下方的 阅读原文 链接。如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:
觉得不错,分享给更多人看到
郭霖 微信二维码
分享这篇文章
7月14日 22:35
郭霖 最新文章
郭霖 热门文章98872人阅读
【android 进阶之路】(67)
转载请标明出处:,本文出自上一篇博客带大家实现了:&,有兄弟看了以后说,你这滑动菜单过时了呀~QQ5.0的效果还不错~~嗯,的确,上一篇也承诺过,稍微修改上一篇的代码,实现QQ5.0侧滑菜单~~好了,下面就开始为大家展示写一个类QQ的侧滑有多easy ~!1、原理分析首先对比一下我们上篇的实现距离QQ的效果还有多远:差距还是蛮大的区别1、QQ的内容区域会伴随菜单的出现而缩小区别2、QQ的侧滑菜单给人的感觉是隐藏在内容的后面,而不是拖出来的感觉区别3、QQ的侧滑菜单有一个缩放以及透明度的效果~那么我们如何能做到呢:对于区别1:这个好办,我们可以在滑动的时候,不断的改变内容区域的大小;如何改变呢?我们在菜单出现的整个过程中,不断记录菜单显示的宽度与其总宽度的比值,是个从0到1的过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域;对于区别3:也比较好办,上面已经可以得到0到1的这个值了,那么缩放和透明度的动画就不在话下了;对于区别2:我们使用的HorizontalScrollView,然后水平放置了菜单和内容,如何让菜单可以隐藏到内容的后面呢?其实也比较简单,在菜单出现的过程中,不断设置菜单的x方向的偏移量;0的时候完全隐藏,0.3的时候,隐藏x方向偏移量为0.7个宽度,类推~~~好了,分析完毕,那么对于这些动画用什么实现最好呢?想都不用想,属性动画哈,如果你对属性动画不了解,可以参:和2、实现1、初步的代码布局文件神马的,都和上一篇一模一样,这里就不重复贴代码了,不了解的,先看下上一篇;先看一下上一篇我们已经实现的完整代码:package com.example.zhy_
import android.content.C
import android.content.res.TypedA
import android.util.AttributeS
import android.util.TypedV
import android.view.MotionE
import android.view.ViewG
import android.widget.HorizontalScrollV
import android.widget.LinearL
import com.zhy.utils.ScreenU
public class SlidingMenu extends HorizontalScrollView
* 屏幕宽度
private int mScreenW
private int mMenuRightP
* 菜单的宽度
private int mMenuW
private int mHalfMenuW
private boolean isO
public SlidingMenu(Context context, AttributeSet attrs)
this(context, attrs, 0);
public SlidingMenu(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
mScreenWidth = ScreenUtils.getScreenWidth(context);
TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
R.styleable.SlidingMenu, defStyle, 0);
int n = a.getIndexCount();
for (int i = 0; i & i++)
int attr = a.getIndex(i);
switch (attr)
case R.styleable.SlidingMenu_rightPadding:
mMenuRightPadding = a.getDimensionPixelSize(attr,
(int) TypedValue.applyDimension(
PLEX_UNIT_DIP, 50f,
getResources().getDisplayMetrics()));// 默认为10DP
a.recycle();
public SlidingMenu(Context context)
this(context, null, 0);
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
* 显示的设置一个宽度
if (!once)
LinearLayout wrapper = (LinearLayout) getChildAt(0);
ViewGroup menu = (ViewGroup) wrapper.getChildAt(0);
ViewGroup content = (ViewGroup) wrapper.getChildAt(1);
mMenuWidth = mScreenWidth - mMenuRightP
mHalfMenuWidth = mMenuWidth / 2;
menu.getLayoutParams().width = mMenuW
content.getLayoutParams().width = mScreenW
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
protected void onLayout(boolean changed, int l, int t, int r, int b)
super.onLayout(changed, l, t, r, b);
if (changed)
// 将菜单隐藏
this.scrollTo(mMenuWidth, 0);
public boolean onTouchEvent(MotionEvent ev)
int action = ev.getAction();
switch (action)
// Up时,进行判断,如果显示区域大于菜单宽度一半则完全显示,否则隐藏
case MotionEvent.ACTION_UP:
int scrollX = getScrollX();
if (scrollX & mHalfMenuWidth)
this.smoothScrollTo(mMenuWidth, 0);
this.smoothScrollTo(0, 0);
return super.onTouchEvent(ev);
* 打开菜单
public void openMenu()
if (isOpen)
this.smoothScrollTo(0, 0);
* 关闭菜单
public void closeMenu()
if (isOpen)
this.smoothScrollTo(mMenuWidth, 0);
* 切换菜单状态
public void toggle()
if (isOpen)
closeMenu();
openMenu();
利用HorizontalScrollView,监听了ACTION_UP的事件,当用户抬起手指时,根据当前菜单显示的宽度值,判断是缩回还是完全展开;给用户提供了一个rightPadding属性,用于设置菜单离右屏幕的距离;以及对外提供了打开,关闭,切换的几个方法;具体的讲解看下上篇博客了;2、实现的思路现在我们开始解决那3个区别,已经选择了使用属性动画,现在决定动画效果应该加在哪儿?不用说,我用大腿想一想都应该是在ACTION_MOVE中,是的,ACTION_MOVE中的确可以,不断获取当前的getScrollX / mMenuWidth,不断改变菜单的透明度,缩放,X方向的偏移量;不断改变内容区域的宽度和高度;说一下,起初我也是在MOVE中这么做的,但是呢,出现两个问题:1、动画效果并不是很流畅,特别是菜单,有抖动的效果;2、用户抬起后,还需要在UP里面,继续未完成的动画,就是说,你的透明度、缩放神马的,当用户抬起以后就需要自动变化了;于是乎,我就开始换了个方向,既然是SrollView,肯定有一个ScrollChanged方法,功夫不负有心人,真心这么个方法:@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
}这个方法只要scrollChanged就会触发,l就是我们需要的scrollX,太赞了~~~3、动画比例的计算我们在onScrollChanged里面,拿到 l 也就是个getScrollX,即菜单已经显示的宽度值;float scale = l * 1.0f / mMenuW与菜单的宽度做除法运算,在菜单隐藏到显示整个过程,会得到1.0~0.0这么个变化的区间;有了这个区间,就可以根据这个区间设置动画了;1、首先是内容区域的缩放比例计算:我们准备让在菜单出现的过程中,让内容区域从1.0~0.8进行变化~~那么怎么把1.0~0.0转化为1.0~0.8呢,其实很简单了:float rightScale = 0.8f + scale * 0.2f; (scale 从1到0 ),是不是哦了~接下来还有3个动画:2、菜单的缩放比例计算仔细观察了下QQ,菜单大概缩放变化是0.7~1.0float leftScale = 1 - 0.3f *3、菜单的透明度比例:我们设置为0.6~1.0;即:0.6f + 0.4f * (1 - scale)4、菜单的x方向偏移量:看一下QQ,并非完全从被内容区域覆盖,还是有一点拖出的感觉,所以我们的偏移量这么设置:tranlateX = mMenuWidth * scale * 0.6f ;刚开始还是让它隐藏一点点~~~4、完整的实现说了这么多,其实到上一篇史上最简单的侧滑,到QQ5.0的效果的转变,只需要几行代码~~@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
super.onScrollChanged(l, t, oldl, oldt);
float scale = l * 1.0f / mMenuW
float leftScale = 1 - 0.3f *
float rightScale = 0.8f + scale * 0.2f;
ViewHelper.setScaleX(mMenu, leftScale);
ViewHelper.setScaleY(mMenu, leftScale);
ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale));
ViewHelper.setTranslationX(mMenu, mMenuWidth * scale * 0.6f);
ViewHelper.setPivotX(mContent, 0);
ViewHelper.setPivotY(mContent, mContent.getHeight() / 2);
ViewHelper.setScaleX(mContent, rightScale);
ViewHelper.setScaleY(mContent, rightScale);
}就这么几行。这里属性动画用的nineoldandroids为了保持向下的兼容;主要就是设置了各种动画,上面都详细说了~~~然后,记得把我们的菜单和内容的布局,单独声明出来为我们的mMenu ,mContent ~没了,就改了这么几行~3、效果图是骡子是马,拉出来溜溜菜单栏需要ListView的拖动也是不会冲突了,上篇已经测试了;关于动画属性的范围:上面介绍的特别清楚,比如内容我们是最小显示0.8,你要是喜欢0.6,自己去修改一下;包括偏移量,透明度等范围;因为上一篇已经写了如何把属性抽取成自定义的属性;所以这里就没有抽取了,不然总觉得是在重复~嗯,最近还有写APP的侧滑,是这样的,就是菜单栏完全隐藏在内容区域下面,如果需要这样需求的:其实我还满喜欢这样效果的。实现呢,注释几行代码就实现了:@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
super.onScrollChanged(l, t, oldl, oldt);
float scale = l * 1.0f / mMenuW
float leftScale = 1 - 0.3f *
float rightScale = 0.8f + scale * 0.2f;
ViewHelper.setScaleX(mMenu, leftScale);
ViewHelper.setScaleY(mMenu, leftScale);
ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale));
ViewHelper.setTranslationX(mMenu, mMenuWidth * scale );
ViewHelper.setPivotX(mContent, 0);
ViewHelper.setPivotY(mContent, mContent.getHeight() / 2);
ViewHelper.setScaleX(mContent, rightScale);
ViewHelper.setScaleY(mContent, rightScale);
}好了,虽说最终的实现看起来还是很简单的,看起来,嗯~~但是从无到有的这个过程还是不容易的~~各种尝试,我能说我连蹲坑都在滑QQ的菜单观察么~哈,见笑了;博客中也写出了过程中失败的尝试,希望能够更好的让大家在里面学到些有用的东西~~YEAH!! 就到这,没事就留个言~~~再不留言,我就来个源码请留下邮箱,嘿嘿,开个玩笑~
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
积分:42250
积分:42250
排名:第61名
原创:191篇
评论:12125条
长期为您推荐优秀博文、开源项目、视频等,进入还有好玩的等着你,欢迎扫一扫。
请勿重复加群,Thx
文章:11篇
阅读:148383
文章:10篇
阅读:88770
文章:67篇
阅读:4467021

我要回帖

更多关于 js仿qq左右侧滑菜单 的文章

 

随机推荐