iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现透明度可变的标题栏效果
  • 290
分享到

Android实现透明度可变的标题栏效果

明度标题栏Android 2022-06-06 08:06:10 290人浏览 薄情痞子
摘要

我们在做类似于个人主页类应用的时候,可能会遇到这样的需求,效果如下 相信大家应该看明白是什么效果了,就是随着列表的滑动,上面的标题栏的透明度会随之变化。在iOS中,有很

我们在做类似于个人主页类应用的时候,可能会遇到这样的需求,效果如下


相信大家应该看明白是什么效果了,就是随着列表的滑动,上面的标题栏的透明度会随之变化。在iOS中,有很多的软件有这种效果,下面,我们看一下这种效果是如何实现的。
先看一下项目的目录

我们可以看到,目录结构很简单,因为我这个地方是使用的XListview代替的Listview,有很多文件都是XListview自带的,所以显得文件多一些,如果没使用过XListview,请先百度XListview看看。
这里面,我们需要重点关注的只有一个文件,就是MainActivity,我们的关键代码都在这里,下面,我们看一下代码实现



public class MainActivity extends Activity implements OnScrollListener {
 private XListView listView;
 // 标题栏的布局
 private RelativeLayout rl_title;
 // ListView的头布局
 private View headerView;
 // 头布局的高度
 private int headerHeight;
 private LayoutInflater inflater;
 private Handler handler = new Handler();
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 rl_title = (RelativeLayout) findViewById(R.id.rl_title);
 listView = (XListView) findViewById(R.id.list);
 rl_title.getBackground().setAlpha(0);
 inflater = LayoutInflater.from(this);
 headerView = inflater.inflate(R.layout.header_listview, null);
 // 添加头布局
 listView.addHeaderView(headerView);
 listView.setAdapter(new MyAdapter());
 // 设置滚动监听
 listView.setOnScrollListener(this);
 // 设置可以刷新与加载更多
 listView.setPullLoadEnable(true);
 listView.setPullRefreshEnable(true);
 listView.setXListViewListener(new IXListViewListener() {
  @Override
  public void onRefresh() {
  // 单纯的模拟刷新过程
  handler.postDelayed(new Runnable() {
   @Override
   public void run() {
   listView.stopRefresh();
   }
  }, 500);
  }
  @Override
  public void onLoadMore() {
  // 单纯的模拟加载过程
  handler.postDelayed(new Runnable() {
   @Override
   public void run() {
   listView.stopLoadMore();
   }
  }, 500);
  }
 });
 }
 // 自定义适配器
 private class MyAdapter extends BaseAdapter {
 // 默认显示10个item
 @Override
 public int getCount() {
  return 10;
 }
 @Override
 public Object getItem(int position) {
  return position;
 }
 @Override
 public long getItemId(int position) {
  return position;
 }
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  if (convertView == null) {
  convertView = inflater.inflate(R.layout.item_list, null);
  }
  return convertView;
 }
 }
 @Override
 public void onScrollStateChanged(AbsListView view, int scrollState) {
 }
 // 最重要的方法,标题栏的透明度变化在这个方法实现
 @Override
 public void onScroll(AbsListView listView, int firstVisibleItem,
  int visibleItemCount, int totalItemCount) {
 // 判断当前最上面显示的是不是头布局,因为Xlistview有刷新控件,所以头布局的位置是1,即第二个
 if (firstVisibleItem == 1) {
  // 获取头布局
  View view = listView.getChildAt(0);
  if (view != null) {
  // 获取头布局现在的最上部的位置的相反数
  int top = -view.getTop();
  // 获取头布局的高度
  headerHeight = view.getHeight();
  // 满足这个条件的时候,是头布局在XListview的最上面第一个控件的时候,只有这个时候,我们才调整透明度
  if (top <= headerHeight && top >= 0) {
   // 获取当前位置占头布局高度的百分比
   float f = (float) top / (float) headerHeight;
   rl_title.getBackground().setAlpha((int) (f * 255));
   // 通知标题栏刷新显示
   rl_title.invalidate();
  }
  }
 } else if (firstVisibleItem > 1) {
  rl_title.getBackground().setAlpha(255);
 } else {
  rl_title.getBackground().setAlpha(0);
 }
 }
}

代码是不是不复杂?我们只需要实现onScroll方法就可以,在这里面,完成我们对HeaderView的位置的检测,然后通过HeaderView的高度和显示的高度来计算比例,设置到TitleBar的背景图片的透明度即可。

是不是很神奇,希望大家喜欢。

您可能感兴趣的文章:Android仿知乎ScrollView滚动改变标题栏透明度


--结束END--

本文标题: Android实现透明度可变的标题栏效果

本文链接: https://www.lsjlt.com/news/25607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS属性实现透明度渐变效果的方法
    CSS属性实现透明度渐变效果的方法,需要具体代码示例在网页设计中,透明度渐变效果可以为页面增添一种柔和而美观的过渡效果。通过CSS属性的设置,我们可以轻松实现不同元素在透明度上的过渡效果。今天我们就来介绍一些常见的方法和具体的代码示例。使用...
    99+
    2023-11-18
    CSS 透明度 渐变
  • ps渐变透明效果的实现方法
    这篇文章给大家分享的是有关ps渐变透明效果的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。创建矩形选区,crl c+crl v创建新的图层稍微调整亮点。双击矩形图层,调整图层调整面板,进行阴影。用选区工具...
    99+
    2023-06-14
  • 原生JS如何改变透明度实现轮播效果
    这篇文章给大家分享的是有关原生JS如何改变透明度实现轮播效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一部分(html+css)包含的知识有:positon定位。最外层是一...
    99+
    2024-04-02
  • 如何使用CSS实现元素的透明度渐变效果
    如何使用CSS实现元素的透明度渐变效果在Web开发中,为网页元素添加过渡效果是提升用户体验的重要手段之一。透明度的渐变效果不仅可以使页面变得更加平滑,还可以突出元素的重点内容。本文将介绍如何使用CSS实现元素的透明度渐变效果,并提供具体的代...
    99+
    2023-11-21
    CSS 元素 渐变效果 透明度
  • Android实现可折叠式标题栏
    本文实例为大家分享了Android实现可折叠式标题栏的具体代码,供大家参考,具体内容如下 先看效果图: 一、实现步骤: 1、布局文件 <xml version="1.0" e...
    99+
    2024-04-02
  • Android Studio 透明状态栏的实现示例
        最近正在学习使用Android Studio,发现默认的Hello World程序界面和我们平时使用的APP界面有很大的不同,多了Ac...
    99+
    2024-04-02
  • Android中的半透明状态栏怎么实现
    在Android中实现半透明状态栏,可以按照以下步骤来操作:1. 首先,在你的`styles.xml`文件中定义一个样式,用于控制状...
    99+
    2023-09-28
    android
  • Android实现底部半透明弹出框PopUpWindow效果
    Android底部半透明弹出框PopUpWindow,供大家参考,具体内容如下layout布局:<?xml version="1.0" encoding="utf-8"?><RelativeLayout x...
    99+
    2023-05-30
    android 弹出框 popupwindow
  • Android实现状态栏(statusbar)渐变效果的示例
    前言qq最近更新搞了渐变式状态栏.然后...新需求就是要加这个.唉先来张效果图:常见的方式:设置Theme,状态栏透明. <item name="android:windowTranslucentStatus">true<...
    99+
    2023-05-30
    android 状态栏 渐变
  • JavaScript如何通过改变文字透明度实现的文字闪烁效果
    这篇文章主要为大家展示了“JavaScript如何通过改变文字透明度实现的文字闪烁效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何通过...
    99+
    2024-04-02
  • CSS实现鼠标点击改变图片透明度功能
    这篇文章主要介绍“CSS实现鼠标点击改变图片透明度功能”,在日常操作中,相信很多人在CSS实现鼠标点击改变图片透明度功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS实...
    99+
    2024-04-02
  • css实现透明渐变特效的案例
    这篇文章给大家分享的是有关css实现透明渐变特效的案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。知乎发现栏目上的标题图一般都是以下图方式展现的,很显然它是利用渐变去实现的。思路很有意思,主要是要有两方面的认知...
    99+
    2023-06-08
  • Android实现网易严选标签栏滑动效果
    标签栏是一个非常常见的控件,似乎也是一个比较简单的控件,但如果在标签下方加个下划线的话,就还是可以玩出挺多花来的。网易严选的标签栏就做的很不错,里面隐藏着诸多细节: 手动滑动页面,下划线会跟着滑动。 选择一个标签后,下划线会有滑动过去的...
    99+
    2023-05-30
    android 标签栏 滑动
  • css怎么实现背景半透明文字不透明的效果
    这篇文章给大家分享的是有关css怎么实现背景半透明文字不透明的效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果如下:<!DOCTYPE html><html> &...
    99+
    2023-06-08
  • 在Android开发中利用Toolbar实现随着ScrollView改变透明度
    本篇文章为大家展示了在Android开发中利用Toolbar实现随着ScrollView改变透明度,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android中Toolbar随着ScrollView...
    99+
    2023-05-31
    scrollview toolbar roi
  • Android应用中怎么实现一个导航键透明效果
    这期内容当中小编将会给大家带来有关Android应用中怎么实现一个导航键透明效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MainActivity代码public class Ma...
    99+
    2023-05-31
    android roi
  • Android Studio实现标题栏和状态栏的隐藏
    Android Studio在实现隐藏标题栏和状态栏上和Eclipse是完全不一样的。在Eclipse上隐藏标题栏和状态栏的代码如下:方法一: requestWindowFeature(Window.FEATURE_NO_TITLE);方法...
    99+
    2023-05-30
    android 标题栏 状态栏
  • 纯CSS如何实现鼠标放上滑动出半透明效果
    这篇文章给大家分享的是有关 纯CSS如何实现鼠标放上滑动出半透明效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果如下:实例1实例2以实例1【婚礼策划】为例HTML:<div class=&q...
    99+
    2023-06-08
  • CSS属性实现透明背景效果的技巧
    在网页设计中,透明背景效果是一个非常常见的要素。它可以让文字或图片更容易被看清楚。然而,在实际操作中,我们可能经常会遇到一些效果不理想或无法达到想要的结果的问题。本文将介绍CSS属性实现透明背景效果的技巧,并提供具体的代码示例。首先,我们需...
    99+
    2023-11-18
    实现技巧 CSS属性 透明背景
  • HTML如何实现鼠标移动悬停在图片上图片变色或半透明效果
    本篇内容介绍了“HTML如何实现鼠标移动悬停在图片上图片变色或半透明效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作