android 广告页沉浸,Android开发之实现沉浸式效果的轮播图

前言:上一章节《Android开发之轮播图广告的实现》让我们了解了轮播图的实现,随着google对安卓版本的越来越加强,所以现在各种大型app都是实现的沉浸式效果的轮播图,所以今天我们在上一章节的基础上来进行实现这一功能,可以参开《Android开发之实现QQ空间、美团首页沉浸式状态栏 》来实现!

---------------------------分割线-------------------------

效果图:

14c52690c09265c98cbfbf3b7ec2e0b8.gif

-----------------------分割线-----------------

组成:

1.最外层的ScrollView(带滑动监听)

2.头部ToolBar

3.头部的轮播图

4.能和ScrollView兼容的ListView(RecyclerView实现原理一样)。

-----------------------分割线-----------------

实现:

1.滑动监听的ScrollView《Android开发之实现QQ空间、美团首页沉浸式状态栏 》已经实现。

2.能和ScrollView兼容的ListView

import android.content.Context;

import android.util.AttributeSet;

import android.widget.ListView;

public class NoScrollListview extends ListView {

public NoScrollListview(Context context) {

super(context);

}

public NoScrollListview(Context context, AttributeSet attrs) {

super(context, attrs);

}

public NoScrollListview(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);

}

}

3.在《Android开发之轮播图广告的实现》上增加对ViewPager默认焦点的设置:

viewPager.setFocusable(true);

viewPager.setFocusableInTouchMode(true);

viewPager.requestFocus();

4.然后用ViewPager获取动态图片的高度:

/**

* 获取顶部图片高度后,设置滚动监听

*/

private void initListeners() {

ViewTreeObserver vto = viewPager.getViewTreeObserver();

vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

viewPager.getViewTreeObserver().removeGlobalOnLayoutListener(this);

imageHeight = viewPager.getHeight();

scrollView.setScrollViewListener(MainActivity4.this);

}

});

}

5.然后对NoScrollViewListView进行设置Adapter:

NoScrollListview listview = (NoScrollListview) findViewById(R.id.listview);

ArrayAdapter adapter = new ArrayAdapter(MainActivity4.this,

android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.data));

listview.setAdapter(adapter);

6.其余的可以参考《Android开发之实现QQ空间、美团首页沉浸式状态栏》来实现。

-----------------------------源码下载---------------------------------------

点击下载源码:《Android开发之实现沉浸式效果的轮播图代码》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值