安卓 下滑杠怎么打做到滑的时候上面的杠一起滑

Android中GridView如何与广告位轮播实现一起滑动_百度知道
Android中GridView如何与广告位轮播实现一起滑动
我有更好的答案
1.首先自定义一个ViewFlow类。2.然后定义一个CircleFlowIndicator类。具体代码依然见源码;3.接下来就在布局文件中开始使用了&framelayout android:id=&@+id/framelayout& android:layout_height=&300dip& android:layout_width=&fill_parent& android:orientation=&vertical&&
&/framelayout&代码中有个app:activeType,app:radius 这样的东西,可能新手不是很明白到底是个shenmegui,解释一下这是自定义属性。使用自定义属性首先要记得把这个属性相应的命名空间给加在布局文件的开头,否则无法编译。xmlns:app=””这些属性都对应在attrs.xml文件中可以找到。
4.然后就可以在Activity中调用了,具体的代码是:/** * @Description:显示广告条的主页 * @author
*/public class MainActivity extends Activity {
private ViewFlow mViewF
private CircleFlowIndicator mFlowI
private ArrayList imageUrlList = new ArrayList();
ArrayList linkUrlArray= new ArrayList();
ArrayList titleList= new ArrayList();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
imageUrlList.add();
imageUrlList.add();
imageUrlList.add();
linkUrlArray.add(/article/details/);
linkUrlArray.add(/article/details/);
linkUrlArray.add(/article/details/);
titleList.add(Android开发面试经——);
titleList.add(Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现);
titleList.add(Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框 );
initBanner(imageUrlList);
private void initView() {
mViewFlow = (ViewFlow) findViewById(R.id.viewflow);
mFlowIndicator = (CircleFlowIndicator) findViewById(R.id.viewflowindic);
private void initBanner(ArrayList imageUrlList) {
mViewFlow.setAdapter(new ImagePagerAdapter(this, imageUrlList,
linkUrlArray, titleList).setInfiniteLoop(true));
mViewFlow.setmSideBuffer(imageUrlList.size()); // 实际图片张数,
// ImageAdapter实际图片张数为3
mViewFlow.setFlowIndicator(mFlowIndicator);
mViewFlow.setTimeSpan(4500);
mViewFlow.setSelection(imageUrlList.size() * 1000); // 设置初始位置
mViewFlow.startAutoFlowTimer(); // 启动自动播放
}}5.有一个很关键的就是ImagePagerAdapter这个适配器,因为加载网络图片是在这个类里实现的,还有广告条的点击,进入一个Web界面的实现。在这里加载网络图片使用了一个很火的开源项目,UniversalImageLoader(异步加载网络图片) 。ImagePagerAdapter.class 类:/** * @Description: 图片适配器 * @author
*/ public class ImagePagerAdapter extends BaseAdapter {
private List imageIdL
private List linkUrlA
private List urlTitlesL
private boolean isInfiniteL
private ImageLoader imageL
private DisplayImageO
public ImagePagerAdapter(Context context, List imageIdList,
List urllist, List urlTitlesList) {
this.context =
this.imageIdList = imageIdL
if (imageIdList != null) {
this.size = imageIdList.size();
this.linkUrlArray =
this.urlTitlesList = urlTitlesL
isInfiniteLoop =
// 初始化imageLoader 否则会报错
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(context));
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.meinv) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.meinv) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true) // 设置下载的图片是否缓存在内存中
.cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
public int getCount() {
// Infinite loop
return isInfiniteLoop ? Integer.MAX_VALUE : imageIdList.size();
* get really position
* @param position
private int getPosition(int position) {
return isInfiniteLoop ? position % size :
public View getView(final int position, View view, ViewGroup container) {
final ViewH
if (view == null) {
holder = new ViewHolder();
view = holder.imageView = new ImageView(context);
holder.imageView
.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
view.setTag(holder);
holder = (ViewHolder) view.getTag();
imageLoader.displayImage(
(String) this.imageIdList.get(getPosition(position)),
holder.imageView, options);
holder.imageView.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String url = linkUrlArray.get(ImagePagerAdapter.this
.getPosition(position));
String title = urlTitlesList.get(ImagePagerAdapter.this
.getPosition(position));
* if (TextUtils.isEmpty(url)) {
* holder.imageView.setEnabled(false); }
Bundle bundle = new Bundle();
bundle.putString(url, url);
bundle.putString(title, title);
Intent intent = new Intent(context, BaseWebActivity.class);
intent.putExtras(bundle);
context.startActivity(intent);
Toast.makeText(context, 点击了第 + getPosition(position) ,
0).show();
private static class ViewHolder {
ImageView imageV
* @return the isInfiniteLoop
public boolean isInfiniteLoop() {
return isInfiniteL
* @param isInfiniteLoop
the isInfiniteLoop to set
public ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) {
this.isInfiniteLoop = isInfiniteL
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}}6.点击进入一个带进度条的WebView的Activity,加载成功就可以了。
采纳率:51%
这个问题非常专业哦
本回答被提问者采纳
监听回调。具体方法就是当年广告位轮播的时候,写一个 监听listener,回调到gridview层,在处理相应的场景。
绑绑定到一起啊
使用同一个触摸监听
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在Android中如何实现 滑动时将某条View定位在顶部,就是和美团商品详情界面的效果一样,滑动时&立即抢购&会停在顶部,
图片为想要实现的效果
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
这个效果是模仿iPhone来的,iPhone中默认提供了实现方法;Android中的做法是在模拟出来的,在当前界面的顶部放一个和需要顶部固定一摸一样的View,然后在界面滑动时判断,当ScrollView或者ListView滑动到该View刚好离开屏幕时,将布局好的View显示出来,反之隐藏它就可以实现这个效果了。
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (5035) 次安卓笔记(二)在listview下面或上面加textview想一起滑动
当时在listview中想加一个不相关的textview一起滑动,因为对安卓不是很了解所以自己就在网上找了找,找到了比较笨的方法,不过也算是一点体验,记录一下
下面加菜单 &:方法是在xml中把listview放在FrameLayout中
这样下面的textview就不会被listview给挤掉了,方法还是很简单,但当时就是没想到。
上面加textview或别的东西一起滑动方法都是一样的
&都是吧listview和其他控件先一起放在LinearLayout中
然后一起放在ScrollView中
注意&ScrollView中只能跟一种布局
所以一定要把控件都放到一个布局中再镶套到ScrollView中
ScrollView和listview的冲突解决方法是在该类中写一个方法
该方法写在listview放入Adapter的下面&,方法在网上有很多有需要可以在网上搜一下
&android:layout_height="fill_parent"&
android:layout_width="fill_parent"&
android:layout_height="fill_parent"&
& android:orientation="vertical" &
android:id="@+id/online_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/question_back"
android:gravity="center"
android:layout_marginLeft="10dp"
&& &android:layout_marginRight="10dp"
android:textColor="@color/tv_fabu"
android:textSize="22sp" /&
& android:id="@+id/lv_answer"
& android:listSelector="#"
android:layout_marginLeft="10dp"
&android:layout_marginRight="10dp"
&android:cacheColorHint="#"
&android:divider=
&android:dividerHeight="5dp"&
& android:layout_marginTop="10dp"
& android:layout_width="fill_parent"
android:layout_height="wrap_content"&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Android手把手教你实现滑动隐藏(GeastureDetector使用) - 简书
Android手把手教你实现滑动隐藏(GeastureDetector使用)
因为移动设备有限的显示屏幕,很多时候都需要在合适的时间去隐藏一些控件,比如滑动隐藏就是一个好的设计方案。本文将实现一个通用性较强的滑动隐藏方案,顺便采用了GeastureDetector这个好用的用户动作检查工具。
一、本文拟实现的效果图
最近下载了Now直播APP,发现它实现了一个比较流畅的滑动隐藏效果,具体看下面的GIF图。
因为在老版本的模拟器上运行,显得有点卡顿,这不是主要的。界面中有一个绿色的功能按钮,随着ListView上滑,它就向下滑动隐藏。能够看出来它同时还包括了一个变透明的效果。本文将模仿实现一个这样的滑动隐藏效果,还是按我的老套路,先上最后的效果图。
二、具体实现。
1. 布局文件,主要是一个ScrollView,里面包含了一个textView,另外就是一个功能按钮。
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
&ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="1000dp"
android:paddingTop="250dp"
android:text="可滑动的ScrollView"
&/ScrollView&
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:text="功能滑动按钮"
&/RelativeLayout&
2. MainActivity中的主体内容,主要干了如下几件事。
其中给ScrollView添加了一个touch监听器
处理用户滑动事件采用了GestureDector
初始化和获取一些关键的成员变量
下面代码中有一个小细节,就是用了View.post()方法去获取mButton的原始top值,为什么要这么干呢?
读者可以试一试直接获取,这时候你调试发现获取的值是0;
因为在onCreate的时候,view的绘制可能还没有完成,采取view.post()的方法可以解决这个问题。
package com.example.administrator.
import android.graphics.P
import android.graphics.R
import android.os.B
import android.support.v4.view.GestureDetectorC
import android.support.v7.app.AppCompatA
import android.view.GestureD
import android.view.MotionE
import android.view.V
import android.widget.B
import android.widget.ScrollV
public class MainActivity extends AppCompatActivity {
private GestureDetectorCompat mDetectorC
private Button mB
private ScrollView mScrollV
private int mOriginButtonT
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.button2);
mButton.post(new Runnable() {//post一个线程去获取button的原始top值
public void run() {
mOriginButtonTop = mButton.getTop();
mScrollView = (ScrollView) findViewById(R.id.scrollView);
mDetectorCompat = new GestureDetectorCompat(this, new MyGestureListener());
mScrollView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
mDetectorCompat.onTouchEvent(event);
3. 第2步中的MyGestureListener 的实现。
使用GeastrueDetector必须要传入一个具体的监听器实现,这个很好理解,因此继承了GestureDetector.SimpleOnGestureListener来实现具体的滑动处理逻辑,在它的onScroll()方法中主要干了如下几件事:
首先判断是不是竖直方向的滑动
判断是向上滑动还是向下滑动
根据不同的滑动方向动态改变功能按钮的top和bottom的值,实现一个移动的效果。
因为是滑动多少就移动多少,所以这个效果的连续性和流畅性还是不错的。
最后注意一些限制,功能按钮不能向上滑出原本的边界;向下移动,如果离开了屏幕的可见范围,就不再移动它。
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
if (Math.abs(distanceY) & Math.abs(distanceX)) {//判断是否竖直滑动
int buttonTop = mButton.getTop();
int buttonBottom = mButton.getBottom();
//是否向下滑动
boolean isScrollDown = e1.getRawY() & e2.getRawY() ? true :
//根据滑动方向和mButton当前的位置判断是否需要移动Button的位置
if (!ifNeedScroll(isScrollDown))
if (isScrollDown) {
//下滑上移Button
mButton.setTop(buttonTop - (int) Math.abs(distanceY));
mButton.setBottom(buttonBottom - (int) Math.abs(distanceY));
} else if (!isScrollDown) {
//上滑下移Button
mButton.setTop(buttonTop + (int) Math.abs(distanceY));
mButton.setBottom(buttonBottom + (int) Math.abs(distanceY));
return super.onScroll(e1, e2, distanceX, distanceY);
//写一个方法,根据滑动方向和mButton当前的位置,判断按钮是否应该继续滑动
private boolean ifNeedScroll(boolean isScrollDown) {
int nowButtonTop = mButton.getTop();
//button不能超出原来的上边界
if (isScrollDown && nowButtonTop &= mOriginButtonTop)
//判断按钮是否在屏幕范围内,如果不在,则不需要再移动位置
if (!isScrollDown) {
return isInScreen(mButton);
4. 上一步中注意判断View是否在屏幕可见范围内的一个方法。
//判断一个控件是否在屏幕范围内
private boolean isInScreen(View view) {
int width,
Point p = new Point();
getWindowManager().getDefaultDisplay().getSize(p);
width = p.x;
height = p.y;
Rect rect = new Rect(0, 0, width, height);
if (!view.getLocalVisibleRect(rect))
最后运行的效果图,已经在最前面展示过了。本文的滑动隐藏的原理实现的关键点有如下几点:
滑动的隐藏的原理是移动需要隐藏的控件,直至滑出屏幕外。
本文采取的移动方式是动态改变控件的top和bottom值,当然还有别的方式,比如scrollBy(),setTranslateY(),setPadding(),但是他们有各自的应用场景。比如scrollBy()实际上没有移动View只是移动了View的内容,如果你不希望引起其他View的位置变化,可以采用scrollBy()方法。
本文通过在onScroll()方法里采取滑动多少距离就移动功能按钮多少距离,保证功能按钮移动的连续性,避免一个突兀跳变的问题。
最后,就是注意滑动边界的判断,在上述步骤中已经说明了。读者可以不加滑动边界判断,试一试是什么效果。
ok,如果觉得本文帮到了你,请留言、点赞,和关注,期待和你一起进步!
纸上得来终觉浅,绝知此事要躬行。
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出。 当了解了Android坐标系和触控事件后,我们再来看看如何使用系统提供的API来实现动态地修改一个View的坐标,即实现滑动效果。而不管采用哪一种方式,其实现的思想基本是一致的,当触摸View...
用到的组件1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SDWebImage多个缩略图缓存组件 UICKeyChainStore存放用户账号密码组件 Reachability监测网络状态 DateTools友好...
发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注
09:45字数 61697阅读 3316评论 2喜欢 85 用到的组件 1、通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FM...
2016俨然过去,记得25岁的时候给自己定了几个目标,依稀记得一条是“30岁之前看50本书”。还算好,目标不多,在过去近一半的时间里唯一坚持下来的可能就是读书,仅2016年的阅读量算算超了五十多本了,当然数字仅仅是一个记录,不代表任何意义。对于阅读来说,我们永远在路上。 2...
孙悟空的五指山,五指山的符文 不能玩多余一把 2个小时有点多啊,上班才上8小时班,占比太重了
贺先生今天穿的黑色无帽卫衣和白色内衬,走路带风,有点帅,我真幸福
湖北荆州公安金狮治安,现为龙船咀。有赤脚医生,人称梅兰幺爹。幺爹以中药、拿脉两手绝活,远近闻名。有女彭焕英,喂磨(往石磨孔中倒欲磨之物),不慎遭碾压,大腿骨折,痛不欲生。其父急送往幺爹处。幺爹以手摩之,后以草药涂敷。并言,药吸碎骨,一个对时可取,不可早,不可晚。次日,候时至...
1 出色的姑娘要有自己的正主意 十一大假一过,工作如山倒的扑面而来,丝毫没有喘息的机会,又回到了车轮式的节奏,连周末都没有空闲,周末我正像勤劳的小蜜蜂般加班,以前公司的领导要我救急,去开会然后画个小图,她分身乏术,因为关系不错,我在电话里委婉的拒绝,说实在忙得脱不开身,因为...在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在微信Android最新额6.2.2版本中,我们可以发现它有一个Activity随着手势滑动返回的效果。厉害的是,下面的Activity也在跟随着动。
我考虑过对下面的Activity进行截图,但这样效果很不好,截的图片与耗内存是个相克的东西。并且最要命的是,横竖屏切换后就露馅了。微信显然不是这样做的。
我想请问大家的是,如何才能实现向微信那样下面Activity跟随上面Activity一起随着手势滑动呢?有好的实现方法吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
关键点:把当前Activity的背景设置成透明,这样滑动的时候就能看到前一个Activity。
项目地址:
作者博客:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 德罗巴滑跪三道杠 的文章

 

随机推荐