首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题

参考界面 : 携程app首页的广告栏, 使用ViewPager实现 自制页面效果图 :  源码下载地址: http://download.csdn.net/detail/han1202012/6835401...fill_parent 还是 wrap_content, 都会出现ViewPager占满全屏的问题; 不使用固定值定义宽高: 为了使ViewPager能适配各种类型的手机, 如果给ViewPager定义了高度和宽度...解决方案  代码中添加组件 : 不在XML界面定义该组件, 可以在布局文件中,定义一个LinearLayout容器, 然后在代码中动态添加ViewPager; 好处 : 这样的好处是可以在代码中获取屏幕的宽高..., 我们可以根据比例设定ViewPager的大小, 这样就解决了屏幕适配的问题; 3....关联数据源 : 可以将一个数组或者集合与PageAdapter关联,集合的索引与ViewPager的索引对应, destroyItem()方法中删除集合中对应索引的元素对象, instantiateItem

1.1K20

Android进阶之绘制-自定义View完全掌握(二)

PageAdapter的使用,每个方法我都写了注释,大家应该能理解吧。...ViewPager在运行之后总共会初始化两个页面,最多初始化三个,随着页面的增多,ViewPager会自动销毁前面的页面进而提供给后面的页面使用,这是ViewPage的内容优化,我们可以来验证一下,我在初始化和销毁的方法中都打印了日志...而指示点有多种实现方式,可以通过图片来显示,也可以自己绘制指示点显示,我这种用的是第二种方式。贴出MainActivity的代码。...,而我们的数据又没有这么多,那么在滑动页面的时候肯定会产生索引越界的问题,所以,为了避免这样的问题产生,我们就必须把有页面位置的地方全部取模处理,让其保持在我们的有限数据范围内,这样就能够实现我们的需求了...整个案例也就结束了,这只是ViewPager使用的一小部分,这个程序还可以加上很多的功能,比如自动播放,然后点击跳转等等,由于篇幅有限,我就不一一实现了,感兴趣的可以自己尝试着写一写。

44440
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android 自定义Viewpager实现无限循环

    前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环。本以为单纯的ViewPager就可以实现这些功能。但是蛋疼的事情来了,ViewPager并不支持循环翻页。...自己在网上也找了些例子,本博文的Demo是结合自己找到的一些相关例子的基础上去改造,也希望对读者有用。   Demo实现的效果图如下: ?    ...(20)) // 设置成圆角图片                 .build(); // 创建配置过得DisplayImageOption对象         ImageLoaderConfiguration...isScrolling) {   int max = imageViews.size() + 1;   int position = (currentPosition + 1) % imageViews.size...本博文Demo下载链接地址如下: http://download.csdn.net/detail/stevenhu_223/8675717    另外,还有一种通过自定义ViewPager实现和本博文相同效果的广告界面

    3.3K70

    自定义广告图片轮播View——CarouselView

    因为一个广告机的需求,需要做一个广告轮播的效果,不需要什么特别的动画,正常的轮播就可以了。笔者看了网上很多文章,要么不好用,要么就是效果太多,太复杂,用不上。...索性自己写了一个简单的View,可以支持普通的广告轮播,目的在轻量级,使用简单。 效果图: ?...简单说下需求: 底部Item指示器 图片文字描述显示 图片轮播 使用简单,使用者不需要考虑除了放图片以外的任何逻辑 重点实现: 首先是改View的xml,CarouselView中封装了ViewPager...View(mC); pointView.setBackgroundResource(R.drawable.carousel_point); //使用选择器设置背景...View(mC); pointView.setBackgroundResource(R.drawable.carousel_point); //使用选择器设置背景

    1.9K20

    巧妙运用补间动画,自定义广告轮播CarouselView 2.0

    自定义广告图片轮播View——CarouselView 这次升级版相对于前文而已,有了一个功能上的飞跃主要区别体现如下: 构建方式更简单 提供更多的API拱用户自定义 提供5中不同应用场景的动画...如果对补间动画还存在疑惑的同学可以阅读笔者的另外一篇文章弥补一下。这次彻底搞懂Android补间动画 先看效果: 饿,不知道为什么,这里做成gif后异常的卡顿,实际效果肯定是如丝版顺滑的。 ?...第二类是一页显示多个Item的动画,这样的轮播图看着更时尚也更高端,相比较于第一类,只是多了这样一段代码: /** * 当需要ViewPager一个界面显示多个Item的时候,调用改方法。...ANIM_SCALEMAGIC.gif 这个动画是非常实用的,我们看动画可以总结一下几点: 一个页面需要显示多个Item position=-1时(在左边时),是被缩小了的,有一个Scale...View(mC); pointView.setBackgroundResource(R.drawable.carousel_point); //使用选择器设置背景

    1.1K20

    一起来做个拜年App吧!

    ---- 下载apk试用 密码: wjep 去github看源码 ---- 前言 马上就要过年了, 做一个App来送祝福是不错的哦, 这里我考虑用ViewPager来做, 大家可以考虑用其它的试试看哦...(你可以弄得简约一些, 也可以夸张一些), 然后添加到一个动画集合当中, 设置给我们的视图....适配器的代码我就不添了, 可以去看源码. /** * 初始化数据 */ private void initData() { imageViews...有一个麻烦的点就是说, 要等视图绘制完成了我们才可以计算出两个小圆点之间的距离, 但是我们现在在onCreate之中, 所以我这里加了一个监听, 绘制(onLayout)完成会回调我们这里加的监听, 当然我们监听以此就可以了...大家完全可以在我的代码的基础上加上更多有趣的东西, 比如播放语音啊, 贴上照片啊, 或者改成情人节告白App也是妥妥的哦.

    64720

    listview优化(中)

    1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是复用以前的就不加载了...2,对于要加载的图片资源,先在内存缓存中找(原始的方法是使用SoftRefrence,最新的方法是使用android提供的Lrucache),如果找不到,则在本地缓存(可以使用DiskLrucache...,使用一个Map保存异步线程的引用,key->value为url->AsyncTask,这样可以避免已经开启了线程去加载图片,但是还没有加载完时,又重复开启线程去加载图片的情况 5,在快速滑动的时候不加载图片...缺点是开启了UI线程去更新UI,浪费了资源,其实这个可以使用定义一个回调接口实现。另外也没有考虑到重复开启下载线程的问题。...缺点是没有实现文件缓存,另外也没有解决出现多个线程下载同一张图片的问题。

    1.1K100

    android之listview缓存图片(缓存优化)

    下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4 4、对下载的图片进行按比例缩放...";   // 放入缓存时是个同步操作 // LinkedHashMap构造方法的最后一个参数true代表这个map里的元素将按照最近使用次数由少到多排列,即LRU // 这样的好处是如果要将缓存中的元素替换...if (bitmap == null)   return 0;   return bitmap.getRowBytes() * bitmap.getHeight();       }   }   也可以使用...SoftReference,代码会简单很多,但是我推荐上面的方法。...// 没有SD卡就放在系统的缓存目录中 if (android.os.Environment.getExternalStorageState().equals(

    1.8K90

    iOS内存优化

    5、不要阻塞主线程 6、在ImageViews中调整图片大小。...如果要在UIImageView中显示一个来自bundle的图片,你应保证图片的大小和UIImageView的大小相同。...如果图片是从远端服务加载的你不能控制图片大小,比如在下载前调整到合适大小的话,你可以在下载完成后,最好是用backgroundundefined thread,缩放一次,然后在UIImageView中使用缩放后的图片...容易被忽略的内存优化如下: 1.View的渲染是很吃CPU性能和内存的,所以更多的View渲染是特别容易消化内存和cpu,特别是我们再使用UIScrollView时,多个Subview 时 我们可以适当的...undefined iOS视图都是一个图层,最先放置的图层就会在最底层,如此最先给UIView添加一个UIImageView就可以作UIView的背景图片使用啦 。

    93464

    程序员的50大MongoDB面试问题及答案

    36.数据在什么时候才会扩展到多个分片(shard)里? 37.我可以把moveChunk目录里的旧文件删除吗? 38.分片(sharding)和复制(replication)是怎样工作的?...它相当于关系型数据库(RDBMS)中的表这种概念。集合位于单独的一个数据库中。 一个集合内的多个文档可以有多个不同的字段。一般来说,集合中的文档都有着相同或相关的目的。...如果每个集合有一个索引(比如默认的_id索引),那么最多可以创建12000个集合。如果索引数更多,则可创建的集合数就更少了。同时,如果集合数太多,一些操作也会变慢。...46.MongoDB + Azure + Android:com.mongodb.WriteConcernException err:“非主用户”代码:“ 10058” 背景 : 嗨,我正在Azure上运行...我使用了 mongo-azure库 来帮助创建具有两个工作角色的MongoDB副本集。 (如果您还有其他资源,那么我很乐意阅读。

    45420

    为什么说Flutter让移动开发变得更好?

    使用这个,我们可以检索一个电影,给定Future的结果列表,快照,并创建一个MovieListItem-Widget(在步骤1中创建),并将该电影作为构造函数参数。...能够将用户界面的一部分抽取到像Widget这样的自包含单元中,可以轻松地在应用程序中甚至跨不同应用程序重复使用这些小部件。这个应用中,布局的很多部分都在不同界面上重复使用,并让我告诉你:这真的很简单。...我通过构建用于加载和显示数据的泛型类来实现,这使得我可以重复使用电影和演出的每个布局。如果用Android实现相同的事情,我必须为电影和演出分别使用不同的Activity。...当然,你可能会问自己:我现在必须学习一个完整的其他框架吗?刚学习了Kotlin并使用架构组件,现在一切都很好。为什么我们想要去了解Flutter?...只需要在Widget上加一些小的Widgets就可以了。 我可以继续下去,你可以思考一下:Android开发目前存在的问题,然后考虑如何重新设计框架来解决这些问题。

    2K10

    Android自己主动化測试解决方式

    以下就是这次简短的訪问:   InfoQ:在不同版本号的Android上执行应用程序,存在什么问题?为了保证程序能正常执行,开发人员须要在Android的每个版本号上測试他的应用吗?   ...(或其它各种Android版本号和设备制造商的组合)   JML:在LG手机,HorizontalScrollViews有时会导致子视图上的背景图片消失。...这个问题存在于我们測试的全部的LG手机,无论Android版本号是多少。   假设你不自己处理这类问题,它将导致你的应用在不同设备上不尽相同。比如,Motorola将会用红色边框来高亮一个输入域。...在我以前參与的一个项目中,我们用相同的红色边框来表示输入有误。   ...我们希望创建一种服务,不但使測试可以进行,而且比起其它不论什么一种架构,它可以节省我们大量測试时间,还可以帮助我们发现很多其它的bug。

    26120

    3D视频聊天,10倍性能TPU,还有Android 12重磅登场!

    Starline这一项目使用了定制深度传感器,数十个景深扫描传感器以及 65 英寸「光场显示器」。 从多个角度捕捉使用者的外形和外观,然后将它们融合在一起,创建极其细致的实时3D模型。 ?...谷歌表示, LaMDA可以使问题的回答更加「make sense」,让对话更自然的进行,而且这些回复都不是预先设定的(和那些聊天机器人不同),甚至相同的答案不会用第二次。...这个问题涉及到了多个方面,比如,天气会比科罗拉多州更热吗?需要什么衣服和装备?在哪里可以租木筏? 就目前而言,我们需要通过多次的搜索才能得到想要的结果。...谷歌的开发者又举了一个去远足的例子:「我爬过亚当山,在下一个秋天我想去富士山,我需要做哪些不同的准备?」 MUM一看,哦,用户这是在对比这两座山,那么海拔和路线的信息可能和这个问题有关。...而且,在爬山这个背景下,「准备」可能包括健身训练以及寻找合适的装备之类的东西。 于是MUM便可以回答:「虽然两座山的海拔大致相同,但秋天的富士山处在雨季,所以可能需要准备防水外套。」

    71940

    UI设计师必须知道的 iOS和Android的APP图标设计指南

    相反,暗示应用程序的功能,使用相同的样式和颜色。对于哪个应用与图标相关,不应该有任何疑问。指南可以帮助您实现这一目标!...我使用Sketch,但任何其他图形编辑器也可以使用。 绘制iOS应用程序图标 有许多用于创建图标的模板,但我们暂时不会使用它们。假设我们已经研究了市场,也许确定了这个想法,甚至手工制作了草图。...当然,在编辑器中创建了一个新文档。我们先选择一个画布尺寸。在iOS中,可以找到不同大小的图标,从40px×40px到1024px×1024px。...我们真的需要手动完成吗?我们可以使用Sketch插件AEIconizer来乘以它。...Android Oreo推出了具有视差和缩放效果的新应用图标格式。您可以将前景与背景分开,然后这些图层将在应用效果的设备上独立移动。因此,前景可以包括透明度。

    2.1K20

    Android应用图标微技巧,8.0系统中应用图标的适配

    可以看到,在Android上,应用图标可以是方形、圆形、圆角矩形、或者是其他任意不规则图形。 本来就是两家公司不同的设计理念,也说不上孰高孰低。...可以看到,这里背景层是一张蓝色的网格图,前景层是一张Android机器人Logo图,然后盖上一层圆形的mask,最终就裁剪出了一张圆形的应用图标。 我一定要适配吗?..." } } 可以看到,这里我在创建新项目的时候默认targetSdkVersion就是26,如果你是低于26的话,说明你的Android SDK有些老了,最好还是更新一下。...当然,背景层并不是一定要用SVG格式的图片,你也可以使用普通的PNG、JPG等格式的图片,甚至是直接指定一个背景色都可以。...解决了前景层,接下来我们来看背景层。其实背景层比前景层就简单多了,一般如果没有什么特殊需求的话,背景层直接使用某种纯色就可以了。

    1.9K20

    技术揭秘,QAPM的这位Android内存分析“专家”

    背景,追赶QAPM的愿景 QAPM原有Android内存快照分析是基于那个颇具历史感的MAT的命令行版本开发的。...也许是基于Shark从代码层面的终极性能优化 - 分析源码问题 我们在分析Shark的源码的时候,发现了下面一些可以优化的问题, 原生的堆对象代理体系索引较少,大部分操作使用Lazy Loading甚至为顺序查找...不保证读取线程安全,多个分析无法在一个索引上同时进行。...使用Okio + Position实现Lazy Loading,需要与IO进行交互,甚至在读取时都要创建一票对象,对GC造成压力,分析速度大大降低。...导出更多分析信息(例如针对Bitmap在不同Android版本的信息获取),来更好的定位内存中的问题所在。 美化信息的输出,提供更加易读,准确的结果。

    1.2K41

    2019 Android 高级面试题总结 从java语言到AIDL使用与原理

    说下你所知道的设计模式与使用场景 a.建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。...使用inBitmap参数前,每创建一个Bitmap对象都会分配一块内存供其使用,而使用了inBitmap参数后,多个Bitmap可以复用一块内存,这样可以提高性能 4.StringBuilder替代String...解决思路如下 1.给他设置 windowBackground 背景跟启动页的背景相同,如果你的启动页是张图片那么可以直接给 windowBackground 这个属性设置该图片那么就不会有一闪的效果了...元素可以重复,元素都有索引(角标),典型的有 Vector:内部是数组数据结构,是同步的(线程安全的)。...建立对象判断是否相同的依据。 TreeSet:保证元素唯一性的同时可以对内部元素进行排序,是不同步的。

    84120
    领券