学习笔记之——仿途牛详情界面标题栏透明度渐变

       仿途牛详情界面标题栏透明度渐变是之前开发的独立项目功能之一,今天新项目又做到了这个功能,索性封装一下做成单独demo,方便以后多次调用和学习。

       按照以往惯例先上效果图:



1.主要是标题栏的透明度跟着滑动的距离改变透明度

2.标题栏的字体跟着滑动改变透明度

3.标题栏的返回按钮逐渐替换新的图标,没有跳变的感觉


首先自定义一个ScrollViewExtend 继承 ScrollView,监听滑动的距离

public class ScrollViewExtend extends ScrollView {
	public interface OnScrollChangedListener {
		void onScrollChange(int offset);
	}

	private OnScrollChangedListener mListener;

	public void setOnScrollChangedListener(OnScrollChangedListener l) {
		this.mListener = l;
	}

	@Override
	protected void onScrollChanged(int l, int t, int oldl, int oldt) {
		super.onScrollChanged(l, t, oldl, oldt);
		if (mListener != null) {
			mListener.onScrollChange(t);
		}
	}

	public ScrollViewExtend(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

}

接下来是设置标题栏的布局,用帧布局来放置两个会覆盖的返回按钮图标:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/product_header_v2"
    android:layout_width="fill_parent"
    android:layout_height="@dimen/h_header"
    android:background="@color/header_background" >

    <FrameLayout  //返回按钮
        android:id="@id/frm_back"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" >

        <ImageView   //白色按钮
            android:id="@id/tv_back_group"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:paddingLeft="15.0dip"
            android:paddingRight="15.0dip"
            android:src="@drawable/icon_bg_group_detail_back" />
 
        <ImageView   //绿色按钮
            android:id="@id/tv_back_background"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:paddingLeft="15.0dip"
            android:paddingRight="15.0dip"
         android:visibility="invisible"
            android:src="@drawable/icon_bg_group_detail_back_backgroud" />
    </FrameLayout>

    <TextView   //标题
        android:id="@id/tv_header_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="3.0dip"
        android:gravity="center_horizontal"
        android:singleLine="true"
        android:textColor="#00000000"
        android:textSize="@dimen/ts_header_title" />
    
    <View   //底部分割线
        android:id="@id/v_header_divider_v2"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/h_divider"
        android:layout_alignParentBottom="true"
        android:background="#00000000" />

</RelativeLayout>

核心代码:

	@Override
	public void onScrollChange(int offset) {
		int height = mProductImage.getHeight();
		if (offset <= height) {
			int percent = offset * 100 / height;
			Log.e("onScrollChange", "percent: " + percent);
			alpha = 0xFF * percent / 100;
			if (percent >= 10) {
				baise.setVisibility(View.VISIBLE);
				baise.setAlpha(255 - alpha);
				lvse.setVisibility(View.VISIBLE);
				lvse.setAlpha(alpha);
			} else {
				baise.setAlpha(255 - alpha);
				mDetailTitlebar.setBackgroundColor(Color.WHITE);
				lvse.setAlpha(alpha);
			}
			Log.e("onScrollChange", "alpha: " + alpha);
			mDetailTitlebar.setBackgroundColor(Color.argb(alpha, 0xFF, 0xFF, 0xFF));
			tv_header_title.setTextColor(Color.argb(alpha, 0x33, 0x33, 0x33));
			v_header_divider_v2.setBackgroundColor(Color.argb(alpha, 0xee, 0xee, 0xee));
		} else {
			baise.setVisibility(View.INVISIBLE);
			lvse.setVisibility(View.VISIBLE);
			mDetailTitlebar.setBackgroundColor(Color.WHITE);
			v_header_divider_v2.setBackgroundColor(Color.parseColor("#eeeeee"));
			tv_header_title.setTextColor(Color.parseColor("#333333"));
		}
	}

Demo源码下载:http://download.csdn.net/detail/lxlyhm/9712701

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8套源码全部100%开放。其中,铛铛企业移动IM已经作为正式的开源产品推出(遵循Apache开源协议);其余7款源码均为WeX5开发工具的完整源码案例。 案例一仿淘宝: 主要实现的功能包含: 1)模仿淘宝的首页展现; 2)查看购物车; 3)宝贝搜索页; 4)宝贝列表和宝贝详情的展现; 案例二仿微店: 主要实现的功能包含: 1)模仿微店的首页展现; 2)多级宝贝分类的展现; 3)宝贝列表和宝贝详情的展现; 4)将宝贝加入购物车; 案例三外卖APP: 主要实现的功能包含: 1)菜单选择加入购物车; 2)购物车下单; 3)历史订单查看; 4)用户信息管理。 案例四问卷调查抽奖活动: 主要实现的功能包含: 1)扫一扫开始答题; 2)输入入问题信息,输出为回答统计信息,输出需要使用可视化图表呈现,必要时也提供元数据; 3)统计数据显示打开页面人数。 案例五仿: 主要实现的功能包含: 1)模仿的首页展现; 2)切换城市; 3)旅游项目的搜索; 4)旅游项目列表和产品详情的展现; 5)多目侧滑查看等。 案例六铛铛企业移动IM: 主要实现的功能包含: 1)多端同步,无缝沟通,随时随地,省时省心 提供ios版、android版、mac桌面版、window桌面版、铛铛网页版、国产麒麟OS桌面版、国产元芯手机版 2)统一通讯平台 支持私聊、群聊、图像、语音、文档、通知,为企业提供统一通讯平台 3)高效移动工作平台 提供计划、任务、工作、签到等工作场景支持,让工作和协作更简单、高效 4)All-in-One业务接入 CRM、HR、PM、SCM……各行各业,各类业务,无缝接入,一站式平台,All-in-one。 案例七仿闲鱼APP: 主要实现的功能包含: 1)登录及注册 2)用户头像的上传 3)鱼塘的创建(鱼塘都是百度地图定位到的周边建筑) 4)加入其它鱼塘 5)想要卖出的商品的发布(可选择发布到的鱼塘及商品的分类) 6)鱼塘的人气以及发布数 7)下单购买买商品 8)对自己所发布、买到及卖出商品的统计 案例八微信二维码名片: 主要实现的功能包含:快速定制自己个性二维码名片

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值