android 仿QQ好友动态 title滑动渐变
最近QQ更新了qq空间消息列表。天天动听也使用了那效果。而且越来越多的android应用都在使用,咱们不能落后啊!
得紧跟时代的步伐,不然就out了。 看起来不错分享下咯!
首先贴一下效果图,因为gif动态图片不懂怎么搞。下次一定改进。
贴下代码先:
自定义了滑动时背景颜色渐变
- package com.seven.fadingdemo;
- import com.seven.fadingactionbardemo.R;
- import android.annotation.SuppressLint;
- import android.content.Context;
- import android.graphics.drawable.Drawable;
- import android.util.AttributeSet;
- import android.view.MotionEvent;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- /**
- * 定义的控件布局
- *
- * @author seven2729
- */
- public class FadingScrollView extends LinearLayout {
- private LinearLayout mActionBar;
- private Drawable mBgDrawable;
- private ImageView fadingBar;// title渐变的控件
- private int fadingHeight; // 可隐藏的控件高度
- private int oldY;
- private int fadingOffset;
- public static final int ALPHA_START = 20;
- public static final int ALPHA_END = 255;
- public FadingScrollView(Context context) {
- this(context, null);
- }
- public FadingScrollView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
- @SuppressLint("NewApi")
- public FadingScrollView(Context context, AttributeSet attrs,
- int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- setOrientation(VERTICAL);
- }
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
- fadingBar = (ImageView) findViewById(R.id.fading_bar);
- }
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- fadingHeight = fadingBar.getMeasuredHeight() - fadingOffset;// title渐变的控件距离
- }
- @SuppressLint("ClickableViewAccessibility")
- @Override
- public boolean onTouchEvent(MotionEvent ev) {
- switch (ev.getAction()) {
- case MotionEvent.ACTION_DOWN:
- oldY = (int) ev.getY();
- break;
- case MotionEvent.ACTION_MOVE:
- int scrollY = getScrollY();
- int y = (int) ev.getY();
- int deltaY = y - oldY;
- int willScrollY = scrollY - deltaY;
- if (willScrollY > fadingHeight)
- {// 不做操作颜色保持不变
- // willScrollY = fadingHeight;
- }
- else
- {// 颜色渐变
- updateActionBarAlpha(willScrollY * (ALPHA_END - ALPHA_START)
- / fadingHeight + ALPHA_START);
- }
- if (willScrollY < 0) {
- willScrollY = 0;
- }
- scrollTo(0, willScrollY);
- oldY = y;
- break;
- case MotionEvent.ACTION_UP:
- break;
- }
- return true;
- }
- public void bindingActionBar(LinearLayout actionBar) {
- mActionBar = actionBar;
- }
- @SuppressWarnings("deprecation")
- public void setActionBarBgDrawable(Drawable bgDrawable) {
- if (mActionBar == null) {
- try {
- throw new Exception(
- "Please try to binding the actionBar before set it's background.");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- mBgDrawable = bgDrawable;
- mBgDrawable.setAlpha(ALPHA_START);
- mActionBar.setBackgroundDrawable(mBgDrawable);
- }
- @SuppressWarnings("deprecation")
- public void setActionBarAlpha(int alpha) throws Exception {
- if (mActionBar == null || mBgDrawable == null) {
- throw new Exception(
- "acitonBar is not binding or bgDrawable is not set.");
- }
- mBgDrawable.setAlpha(alpha);
- mActionBar.setBackgroundDrawable(mBgDrawable);
- }
- void updateActionBarAlpha(int alpha) {
- try {
- setActionBarAlpha(alpha);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void setFadingOffset(int height) {
- fadingOffset = height;
- }
- }
然后就是代码的使用了,根据自己的需要设置大小或者颜色。
- package com.seven.fadingdemo;
- import com.seven.fadingactionbardemo.R;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.graphics.drawable.ColorDrawable;
- import android.os.Bundle;
- import android.widget.LinearLayout;
- /**
- * 主页展示页面
- *
- * @author seven2729
- */
- public class MainActivity extends Activity {
- private LinearLayout mLayout;
- private FadingScrollView fadingScrollView;// 自定义滑动布局
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.activity_main);
- fadingScrollView = (FadingScrollView) findViewById(R.id.root);
- initLinearLayout();
- }
- /**
- * 布局初始化
- */
- @SuppressLint({ "Recycle", "InlinedApi" })
- void initLinearLayout() {
- //初始化fadingScrollView的一些信息
- mLayout = (LinearLayout) findViewById(R.id.lyout_title);
- ColorDrawable bgDrawable = new ColorDrawable(getResources().getColor(
- R.color.color_blue));
- fadingScrollView.bindingActionBar(mLayout);// 设置渐变布局
- fadingScrollView.setActionBarBgDrawable(bgDrawable);// 设置渐变颜色
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <color name="white">#FFFFFF</color>
- <color name="black">#000000</color>
- <color name="transparent">#00000000</color>
- <color name="color_blue">#50BDFB</color>
- </resources>
因为最近有在研究,所以找点资料自己修改了。改成自己需要的
如有需要可以 下载源码
如源码有偏差请根据博文修改!
欢迎转载,转载请注明出处:http://blog.csdn.net/seven2729/article/details/48372851
android 仿QQ好友动态 title滑动渐变相关推荐
- android 仿qq好友动态,Android UI仿QQ好友列表分组悬浮效果
本文实例为大家分享了Android UI仿QQ好友列表分组悬浮效果的具体代码,供大家参考,具体内容如下 楼主是在平板上測试的.图片略微有点大,大家看看效果就好 接下来贴源代码: PinnedHeade ...
- android 仿qq好友列表分组效果及联系人分组效果
历史记录仿QQ好友列表的动态效果 以及联系人的分组效果 QQ朋友分组的功能做的不错,大家都很认可,那么到底他的分组并且滑动的时候,标题能停留在顶部是如何实现的呢?今天从网上搜索了一下资料,自己运行了 ...
- Android 仿QQ好友分组列表、ExpandableListView的使用详解
ListView只能显示一级列表,如果我们需要像QQ好友列表的那样的效果,就需要用到ExpandableListView,入门新手可能对该控件不是很熟悉,下面就详解一下基本用法,其实跟ListView ...
- Android仿QQ好友列表分组实现增删改及持久化
Android自带的控件ExpandableListView实现了分组列表功能,本案例在此基础上进行优化,为此控件添加增删改分组及子项的功能,以及列表数据的持久化. Demo实现效果: Dem ...
- android 仿qq发动态,Android opengl 实现动态贴纸(仿QQ的拍摄)
回顾 在前面视频录制篇尾(https://www.jianshu.com/p/4f63b2436401)中有提到视频录制+人脸识别+贴纸的想法,而上一篇(https://www.jianshu.com ...
- Android 仿QQ登录动态背景
效果图片: 1, 自定义视频类 继承VideoView public class CustomVideoView extends VideoView {public CustomVideoView(C ...
- Android:仿手机QQ好友动态的ListView
1.介绍: 本博客使用XListView模仿Android版QQ好友动态的ListView效果.效果截图如下: 效果图1 效果图2 这里面主要涉及的是ListView的布局问题,让我们看一下Item的 ...
- android 仿qq修改头像,Qt:小项目仿QQ修改头像界面,技术点记录
最近写了一个修改头像功能的UI,布局参考了QQ目前的修改头像界面.如下图 这里主要说明一下两个地方的技术:1.头像图片上层的遮罩层,圆形外部为灰色,内部为全透明:2.上传图片宽高比例可以通过鼠标拖拽移 ...
- Android仿QQ空间底部菜单
之前曾经在网上看到Android仿QQ空间底部菜单的Demo,发现这个Demo有很多Bug,布局用了很多神秘数字.于是研究了一下QQ空间底部菜单的实现,自己写了一个,供大家参考.效果如下图所示: 点 ...
最新文章
- 结对编程之四则运算(马仪生、李瑞恒)
- latex文档的优点和使用小tips
- boost::program_options::options_description相关的测试程序
- 数论练习(1)——取余运算(快速幂)
- 转载:第一次负责项目的总结
- HTML里Dom onload和jQuery document ready这两个事件的区别
- 卓有成效的管理者--总结
- java的基础语法和数据类型,IDEA
- Spring Boot笔记-发送纯字符串邮件及带附件邮件
- 面试时说Redis是单线程的,被喷惨了!
- 归并排序(merge sort)算法实现
- gc日志一般关注什么_JVM(23)JVM的Full GC日志
- iOS应用日志:开始编写日志组件与异常日志
- 将数所有奇数移到数组前java_全国2014年4月自考Java语言程序设计(一)真题
- 最舒服的颜色搭配值,很有用哦,特别是做设计的!!
- MD5加密----------
- dva是什么游戏_守望先锋:DVA这个皮肤小蛮腰不算什么,全部细节是这个小脚丫...
- C# ActionT 委托
- 对学生任务博客的评分练习
- MODIS 产品介绍