Android仿网易新闻图片详情下滑隐藏效果示例代码

前言

本文主要给大家分享了Android仿网易新闻图片详情下滑隐藏效果的相关内容,分享出来供需要的朋友参考学习,下面话不多说了,来一起看看详细的介绍吧

效果图:

实例代码

 public class InfoTextView extends AutoRelativeLayout {
 private Context context;
 private int lastY;
 private int offY;
 private int MIN_HEIGHT = 600;
 public InfoTextView(Context context) {
  super(context);
  this.context = context;
  init();
 }

 public InfoTextView(Context context, AttributeSet attrs) {
  super(context, attrs);
  this.context = context;
  init();
 }

 public InfoTextView(Context context, AttributeSet attrs, int defStyle) {
  super(context, attrs, defStyle);
  this.context = context;
  init();
 }

 private void init() {
  View root = inflate(context, R.layout.ad_detail_text_layout, this);
 }

 @Override
 public boolean onInterceptTouchEvent(MotionEvent ev) {
  return true;
 }

 @Override
 public boolean onTouchEvent(MotionEvent event) {
  return true;
 }
 @Override
 public boolean dispatchTouchEvent(MotionEvent ev) {
  boolean isConsume = false;
  int y = (int) ev.getY();
  switch (ev.getAction()) {
  case MotionEvent.ACTION_DOWN:
   isConsume = true;
   lastY = y;
   break;
  case MotionEvent.ACTION_MOVE:
   offY = y - lastY;
   int[] screenSize = ScreenUtils.getScreenSize(context, false);
   if (getTop() >= (screenSize[1] - MIN_HEIGHT)) {

   break;

   }

 //  Log.d("yzk", "y " + y + " getTop " + getTop()

 //   + " getBottom " + getBottom()

 //   + " screenSize[1] - getMeasuredHeight " + (screenSize[1] - getMeasuredHeight())

 //   + " screenSize[1] - MIN_HEIGHT " + (screenSize[1] - MIN_HEIGHT));

   if ((offY > 0 && getTop() < screenSize[1] - MIN_HEIGHT)

    || offY < 0 && getTop() > screenSize[1] - getMeasuredHeight()) {

   layout(getLeft(), getTop() + offY,

    getRight(), getBottom() + offY);
   }
   break;
  case MotionEvent.ACTION_UP:
   break;
  }
  return isConsume || super.dispatchTouchEvent(ev);
 }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Android组件DrawerLayout仿网易新闻v4.4侧滑菜单

    概述 今天这篇博客将记录一些关于DrawerLayout的基本用法,我想关于DrawerLayout的用法也许有不少不够了解,这也是比较正常的事情,因为DrawerLayout作为Android组件是Google后来在android中添加的,在android.support.v4包下.那么,DrawerLayout是一个怎么的组件呢?我们知道,当我们使用Android上各类App的时候,是不是注意过App主页上通常有一个"侧滑菜单"?关于侧滑菜单的实现,我在前面博客里有一些介绍,想多些

  • Android实现网易新闻客户端侧滑菜单(1)

    Android中很多产品(比如360手机助手.网易菜单...)都采用侧滑菜单的展现形式,采用这种展现形式 1.能把更多的展现内容都存放在菜单中 2.设计上也能体现出视觉效果 现在这种交互方式越来越流行了,虽然这种交互方式可以通过自定义组件的方式来实现,但是用三方开源库更简单. SlidingMenu:SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果. 地址:https://github.com/

  • Android 仿网易新闻客户端分类排序功能

    先来看看网易新闻客户端以及自己实现的效果图,效果当然还是网易的好 gridviewsort.gif 如何实现拖拽一个Item 用WindowManager添加一个ImageView,并且将这个ImageView的显示图片设置成被拖拽item的截图,截图可以通过View的getDrawingCache获得.拖拽的时候,隐藏原始的item.处理触摸事件的ActionMove,调整ImageView的位置,跟随手指移动.在ActionUp的时候removeView GridView @Override

  • Android实现仿网易新闻主界面设计

    下面先来一张效果图 根据图片分析,要实现的有侧边栏DrawerLayout,ActionBar的颜色和菜单以及ActionBarDrawerToggle的动画效果. 在这之前,Theme要改成带有ActionBar的主题 android:theme="@android:style/Theme.Holo.Light" 一:侧边栏-DrawerLayout 根据官方文档,DrawerLayout布局的第一个视图是activity的主视图,第二个是侧边栏视图 因此主布局可以如下这样 Fram

  • Android实现仿网易新闻的顶部导航指示器

    我们知道,页面导航器(Navigator)在几乎所有的项目中都会用到,平时大多数时候为了节省时间,都会直接在github上面拿别人的开源项目来用,最近自己在复习自定义View,就尝试封装了一下,源码参考项目PagerSlidingTabStrip 大家先来看一下效果图 基于文字的页面导航器 基于图片的页面导航器 使用方法 主要步骤分为三步 1)在xml文件里面 <com.xujun.viewpagertabindicator.TabPagerIndicator android:id="@+

  • Android项目实战之仿网易新闻的页面(RecyclerView )

    本文实例实现一个仿网易新闻的页面,上面是轮播的图片,下面是 RecyclerView 显示新闻列表,具体内容如下 错误方法 <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...> <ViewPager ... /> <android.support.v7.widget.RecyclerView .../> </LinearLayout> 这样布局

  • Android实现网易新闻客户端首页效果

    关于实现网易新闻客户端的界面,以前写过很多博客,请参考: Android实现网易新闻客户端效果 Android实现网易新闻客户端侧滑菜单(一) Android实现网易新闻客户端侧滑菜单(二) 今天用ViewPager + FragmentAdapter + ViewPagerIndicator来实现. ViewPagerIndicator是一款分页指标小部件兼容ViewPager,封装上做得非常不错,目前已为众多知名应用所使用.具体API的使用,大家可以下载官方demo示例研究研究就知道啦! 下

  • Android实现类似网易新闻选项卡动态滑动效果

    本文会实现一个类似网易新闻(不说网易新闻大家可能不知道大概是什么样子)点击超多选项卡,选项卡动态滑动的效果. 首先来看看布局,就是用HorizontalScrollView控件来实现滑动的效果,里面包含了一个布局. 接下来我们在onCreat方法中加载布局和构建我们需要显示的数据 <code class="hljs avrasm"> @Override protected void onCreate(Bundle savedInstanceState) { super.on

  • Android模拟实现网易新闻客户端

    首先我们先看一下要模拟的界面 我们主要实现的就是ListView解析json文件中的数据,UI布局很简单不做赘述. 这里我们需要一个服务器来实现数据的动态更新, 这里我们用到的是Tomcat8.0. 首先我们把需要解析的json文件放置到Tomcat的webapp文件下的ROOT里面,方便我们解析. 首先我们创建一个JsonParse类用来解析json文件: package cn.edu.bzu.myapplication.Tools; import com.google.gson.Gson;

  • Android实现网易新闻客户端侧滑菜单(2)

    前面已经讲过通过三方开源库SlideMenu来实现这种效果,请参考Android实现网易新闻客户端侧滑菜单(一) 今天通过自定义View来实现这种功能. 代码如下: SlideMenu.java package com.jackie.slidemenu.view; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view

随机推荐