Android------广告条

Android 广告条轮播的实现 生活中我们不难发现一些电商类的app里面都会有一些轮播的广告条出现,我有位好朋友他正巧就是做商城这方面的app,那时候他也要做一个类似淘宝界面的上的轮播的滚动条,当时他是采用listview来实现此效果,最近有空研究了一下,发现Android有些原生控件完全可以实现此功能,并且还可以实现其它更强大的效果。 阅读详情

在程序drawable下:

             ---- point_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/point_enable" android:state_enabled="true"></item>
    <item android:drawable="@drawable/point_normal" android:state_enabled="false"></item>

</selector>


======================绘制图形

point_enable.xml


<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    
    <corners android:radius="5dip"/>
    
    <solid android:color="#aaFFFFFF"/>
</shape>

====================绘制圆点

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    
    <corners android:radius="5dip"/>
     
    <solid android:color="#55000000"/>
</shape>

package com.example.viewpage;


import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

public class MainActivity extends Activity implements OnPageChangeListener{
	private List<ImageView> listImageViews;
	private String[] imageDescrptions;
	private LinearLayout llPoints;
	private TextView tvTitle;
	private ViewPager mViewPager;
	private int previousPostion=0;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		init();
	}
	
	private void init(){
		mViewPager = (ViewPager) findViewById(R.id.viewpager);
		llPoints = (LinearLayout) findViewById(R.id.ll_points);
		tvTitle = (TextView) findViewById(R.id.tv_title);
		
		listImageViews = new ArrayList<ImageView>();
		
		//初始化图片的ID,图片的文本
		int[] imageResIDs=getImageResIDs();
		imageDescrptions=getImageDescriptions();
		
		ImageView mImageView;
		
		View view;
		LayoutParams lp;
		for (int i = 0; i < imageResIDs.length; i++) {
			mImageView = new ImageView(this);
			mImageView.setImageResource(imageResIDs[i]);
			listImageViews.add(mImageView);
			
			//每次循环一次添加一个点
			view=new View(this);
			view.setBackgroundResource(R.drawable.point_background);
			lp= new LayoutParams(5,5);
			lp.leftMargin =	 5 ;
			view.setLayoutParams(lp);
			view.setEnabled(false);
			llPoints.addView(view);
		}
		
		mViewPager.setAdapter(new ViewPagerAdatper());
		int item=Integer.MAX_VALUE/2; 
		mViewPager.setCurrentItem(item);
		
		mViewPager.setOnPageChangeListener(this);
		llPoints.getChildAt(0).setEnabled(true);
		tvTitle.setText(imageDescrptions[0]);
		
		
		previousPostion = item % listImageViews.size();
	}
	/**
	 * 封装图片id
	 */
	public int[] getImageResIDs(){
		return new int[]{
				R.drawable.a,
				R.drawable.b,
				R.drawable.c,
				R.drawable.d,
				R.drawable.e
		};
	}
	
	
	public String [] getImageDescriptions(){
		return new String[]{
			"1111111111111111111",
			"2222222222222222222",
			"3333333333333333333"
		};
	}
	/**
	 *ViewPagerAdapter
	 *
	 */
	public class ViewPagerAdatper  extends PagerAdapter{

		/**
		 * viewpager的长度
		 */
		@Override
		public int getCount() {
//			return listImageViews.size();
			return Integer.MAX_VALUE;
		}

		/**
		 * 判断滑动的控件和将要显示的控件是否为同一个
		 * true 直接复用
		 * false 会调用instantiateItem 得到一个新的对象
		 */
		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}
		
		/**
		 * 移除ImageView对象
		 */
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			
//			container.removeView(listImageViews.get(position));	
			mViewPager.removeView(listImageViews.get(position % listImageViews.size()));
			
		}
		
		/**
		 * 得到一个Object对象就是ImageView
		 */
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
//			container.addView(listImageViews.get(position));
//			return listImageViews.get(position);
			
			
			
			// 需要把imageView加到ViewPager中, 把imageView对象返回给上一层
			mViewPager.addView(listImageViews.get(position % listImageViews.size()));
			return listImageViews.get(position % listImageViews.size());
		}
	}
	@Override
	public void onPageScrollStateChanged(int arg0) {
		
	}

	@Override
	public void onPageScrolled(int arg0, float arg1, int arg2) {
		
	}

	/**
	 * 将要出来的item的索引是-1 或者 大于等于 viewpage.getCount()
	 * 不会切换item
	 */
	@Override
	public void onPageSelected(int position) {
		
		int realPosition = position % listImageViews.size();
		
		if(imageDescrptions.length>realPosition){
			// 切换文本显示的内容
			tvTitle.setText(imageDescrptions[realPosition]);
		}
		// 切换点的状态
		llPoints.getChildAt(realPosition).setEnabled(true);
		// 把前一个的点置为false
		llPoints.getChildAt(previousPostion).setEnabled(false);
		
		previousPostion = realPosition;
	}

}

效果图:



Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条 showPrevious():          显示ViewFlipper里的上一个View 四、ViewFlipper的详细使用设置View 1.首先在xml中声明ViewFlipper <LinearLayout android:layout_width=“match_parent” android:layout_height=“100dp” android:orientation=“horizonta. 阅读详情

相关推荐

Android首页轮播图和滚动广告条

=====首页轮播图=====第一步:首先我用到的是第三方控件,导入到gradle即可compile 'com.youth.banner:banner:1.4.9'第二步:绑定控件什么的我就不说了,直接设置Banner轮播图的属性了--xml写入的&lt;com.youth.banner.Banner android:id="@+id/banner"...

qq_37100606的博客 930

Android——广告轮播

【代码】Android——广告轮播。

m0_61793503的博客 573

Android 广告条的完美实现

Android 广告条的完美实现,基本满足你应用的广告条。附加一个仿淘宝头条效果。

Android基础控件——ViewFlipper的使用,仿淘宝头条垂直滚动广告条

ViewFlipper的使用,仿淘宝头条垂直广告条 学习,学习,学以致用 ViewFlipper是安卓自带的控件,很多人可能很少知道这个控件,这个控件很简单,也很好理解,能不能用上实战就看你们的本事了。下面是淘宝头条广告的原效果下面是我们今天要实现的效果,图片是Gif,运行效果是很流畅的,由于这个图片反应有点慢,会浪费大家点时间,所以我把它调快了,大家可以掏出手机打开淘宝看,一模一样的从源码可以

点击置顶文章查看博客目录(全站式导航) 1万+

Android 轮播广告条的实现

ViewFliper实现轮播广告条

Android新闻广告条滚动效果

项目中需要用到类似公告栏的控件,能用的基本不支持多行显示,于是只好自己动手,苦于没有自定义过一个像样的控件,借鉴Android公告条demo,实现了多行向上滚动的控件。在原控件基础之上添加如下功能:  •传入数据分页显示  •添加Left Drawable  •手指触摸事件处理  •添加3D动画翻滚效果 效果图 源码 package com.android.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Camera; import a

background设置背景图片巧用

艺龙首页中有一个组件 鼠标移至图片会有撑开效果,而且图片中心位置不会变,这就是backgroun的妙用了 background: url(&amp;quot;&amp;quot;) no-repeat center 0; 意思是图像地址不重复,水平位置居中 垂直位置0。 ...

qq_29738977的博客 1319

Android_RecyclerView实现上下滚动广告条实例(带图片)

本篇文章主要介绍了Android_RecyclerView实现上下滚动广告条实例(带图片),具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Android自定义控件:广告条效果

一、效果展示 Android自定义控件:广告栏效果 二、ListView和ViewPager的使用步骤 (1)ListView的使用 在布局文件中定义ListView 在代码中实例化ListView 准备数据 设置适配器–item布局–绑定数据 (2)ViewPager的使用 在布局文件中定义ViewPager 在代码中实例化ViewPager 准备数据 设置适配器(PagerAd

qq_45716076的博客 661

【同花顺公式编辑教程】第3章 获取数据

学习同花顺公式编辑器,其提供的数据有量价数据以及财务数据。在本章中,我们讲解了编辑器执行代码的原理,并给出了可调用数据的汇总表。

LiaoYi2016218的博客 1万+

西门子 标准程序解读---> 机器手抓取和涂胶控制程序

摘要 该程序实现机械手在OP70/OP90工位的自动化控制,核心功能包括: 流程控制:分段(Seg1-Seg11)管理抓件、涂胶、放件等动作,结合DB1050/DB1250数据块监控工位状态及变位机位置反馈。 安全机制:配置干涉区(FC124)、实时检测安全光/急停信号,防止碰撞;服务程序(FB191)支持维修位触发与安全隔离。 参数配置:通过DB块关联机器人速度、节拍(FB27)、车型编码(如空过=2)及手自动模式(DB70.DBX21.2)。 应用场景:适用于汽车焊接/装配线

工控智联驿站 1239

Android 竖直滚动广告条、上下滚动广告条,View滚动广告条;

四种方式实现仿淘宝滚动广告条: TextView+Handler延时动画 实现滚动效果; 自定义ViewFlipper 实现滚动效果; RecyclerView+子线程延时 实现滚动效果; 竖直ViewPager+Handler延时 实现滚动效果; 项目已上传Github:https://github.com/CuiChenbo/UpRollView; 其实最早写这个效果是在16年的时候,现在拿出来整理一下,同时也看一下自己之前的代码; Android仿淘宝头条滚动广告条, 之前写的没有传.

Choi晨的博客 2437

C#实战:基于ONNX与SCRFD/ArcFace的高效人脸识别系统开发

本文详细介绍了如何在C#环境中,利用ONNX Runtime高效部署SCRFD人脸检测与ArcFace人脸识别模型,构建一个完整的、高性能的人脸识别系统。内容涵盖环境搭建、模型推理、人脸对齐、特征提取等核心模块,并提供了从Demo到生产系统的优化思路与实战代码,为.NET开发者提供了一套开箱即用的解决方案。

weixin_29061821的博客 488

Android轮播广告条NoticeView

首先需写一个自定义控件,NoticeViewpublic class NoticeView extends ViewFlipper implements View.OnClickListener { private Context mContext; private List&lt;String&gt; mNotices; private OnNoticeClickList...

qq_37100606的博客 1173

一文吃透 BMS:动力电池与储能共用的电池管控全架构详解

BMS作为电池系统的核心控制器,其技术深度和系统复杂性不容小觑。动力电池与储能系统虽然应用场景不同,但在核心架构上共享大量基础技术。成功的BMS设计需要在精度、可靠性、成本、功耗之间找到最佳平衡点。未来,随着电池技术的进步和智能化需求的提升,BMS将向着更高集成度、更强智能化、更优经济性的方向发展。无论是汽车工程师还是储能系统设计师,深入理解BMS的全栈架构,掌握其核心技术原理,都将是应对未来能源存储挑战的关键能力。核心要点回顾BMS采用分层分布式架构,硬件是基础,算法是灵魂。

小帽子的博客 342

成分数据的闭合效应对地球化学数据的影响及其解决方案

封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。

qq_59349063的博客 1538

Android: 底部广告条的实现

底部广告条是一个APP中常有的功能,其实它就是view与animation的结合。 编写底部广告条的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" a...

手写我对你的温柔 721

拯救我的老平板三星note8.0 table(GT-N5110)升级到lineage os-14.1(android7.1)全记录

买了多年的三星平板note8.0已经闲置了一段时间,今天在家不能出门,也没啥事,就把它拿出来刷新系统。不成想居然搞了一天,还差点变成了砖。 原版的系统是安卓4.0的系统,很多软件已经不能用了,微信、优酷都不支持,而且三星也不提供更新升级,于是寻求第三方解决方案。折腾过程一波三折,就不赘述了,我就讲一下正确的操作过程吧。 切记我这里讲的过程只针对三星note8.0 table,国行版本,版本号是...

weixin_41108814的博客 2万+

打造Android一体化轮播广告条

在文章打造Android一体式轮播广告条中,我们已经学习了打造Android一体式轮播广告条的制作,在上篇文章中我们已经通过一种方法实现了广告条的无线循环。主要做的目的就是让ViewPager和指示器进行封装,方便我们使用,不需要多次进行指示器的控制。看过最后的效果图我们发现上篇的原理中,从最后一张图切换到第一张的时候,效果显得很突兀。所以我们尝试使用第二种思路进行。第二种思路:通过给PageCou

钝悟需要时间的打磨,顿悟需要时间的积累 1372

用AI生成React/Vue页面?实测Locofy等5款工具,教你选最适合的

本文深度评测了2024年五大AI生成前端页面工具,包括Locofy、Builder.io等,从代码质量、可视化编辑器成本到企业级落地方案进行全面分析。通过实测数据和实战案例,揭示如何利用AI生成技术高效创建React/Vue页面,提升开发效率并优化性能。

m5n6o7的博客 608

Agentic-Desktop-Pet:构建本地智能桌面助手的架构与实践

智能体(Agent)作为人工智能领域的重要概念,是指能够感知环境、自主决策并执行任务以实现目标的软件实体。其核心原理在于结合感知、决策与执行模块,通过大语言模型(LLM)等推理引擎处理信息并驱动行动。这种架构的技术价值在于将AI的认知能力与具体的操作系统环境深度融合,从而创造出能主动理解用户上下文、提供个性化服务的智能伙伴。在应用场景上,智能体技术正从云端对话机器人向本地化、场景化的桌面助手演进,旨在解决传统自动化工具缺乏智能、而纯聊天机器人脱离操作环境的问题。本文探讨的Agentic-Desktop-Pe

weixin_27210125的博客 623

Android 仿淘宝头条 -- 垂直滚动广告条

前言介绍 今天我们来实现淘宝APP上 《淘宝头条》基于TextView实现上下滚动循环通知消息的效果。 在这里我们主要通过 ViewFlipper 也就是安卓自带的控件实现的。 很多人可能都很少知道这个控件,这个控件很简单,也很好理解,操作也不是特别困难 (当然这个也因人而异 ,因难易系数而定) 淘宝效果图 也是我们的效果图 操作步骤 1. 先来看整体的页面布局 tvTao:此 TextVie...

Hu 的博客 1024

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【Android 进阶】淘宝头条:向上滚动广告条ViewFlipper

所谓前人栽树,后人乘凉,在此感谢博主的贡献。 参考博文: 仿淘宝首页的淘宝头条View垂直滚动我在博主的基础上做了如下工作: 修复了滚动条第二条点击事件无法触发这个bug; 充分简化了自定义ViewFlipper类的代码; 添加了直接使用ViewFlipper控件实现同样效果; 先上效果图: 这里使用了一个比较少用的控件:ViewFlipper 学习一个未知的东西,第一步就是要搞懂wh

Veyron_wu 1024

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

垂直广告android,如何在Android应用中利用ViewFlipper实现一个垂直滚动广告条

如何在Android应用中利用ViewFlipper实现一个垂直滚动广告条发布时间:2020-12-05 16:00:57来源:亿速云阅读:95作者:Leah这篇文章给大家介绍如何在Android应用中利用ViewFlipper实现一个垂直滚动广告条,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、ViewFlipper的布局实现布局的编写很简单,跟普通布局一样的androi...

weixin_28839601的博客 240

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android 原生控件 ViewFlipper 实现淘宝头条垂直滚动广告条

设置切换 View 的进入动画。开始 View 的切换,而且会循环进行?

m0_56146626的博客 306

Android中广告条轮播(Banner)的实现

在Android开发中经常用到广告条轮播控件。效果如下: 下面废话不多说,上代码: 控件的布局文件如下: RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="12

MG_ZXC的专栏 2066
上一篇: android---Percel
下一篇: 数据结构---栈的定义
linuxMinx
博客等级 码龄15年 195粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值