Android------广告条
来源:互联网 发布:软件 应用生态 编辑:程序博客网 时间:2024/06/10 12:33
在程序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;@Overrideprotected 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的长度 */@Overridepublic int getCount() {//return listImageViews.size();return Integer.MAX_VALUE;}/** * 判断滑动的控件和将要显示的控件是否为同一个 * true 直接复用 * false 会调用instantiateItem 得到一个新的对象 */@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}/** * 移除ImageView对象 */@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {//container.removeView(listImageViews.get(position));mViewPager.removeView(listImageViews.get(position % listImageViews.size()));}/** * 得到一个Object对象就是ImageView */@Overridepublic 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());}}@Overridepublic void onPageScrollStateChanged(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}/** * 将要出来的item的索引是-1 或者 大于等于 viewpage.getCount() * 不会切换item */@Overridepublic void onPageSelected(int position) {int realPosition = position % listImageViews.size();if(imageDescrptions.length>realPosition){// 切换文本显示的内容tvTitle.setText(imageDescrptions[realPosition]);}// 切换点的状态llPoints.getChildAt(realPosition).setEnabled(true);// 把前一个的点置为falsellPoints.getChildAt(previousPostion).setEnabled(false);previousPostion = realPosition;}}
效果图:
- Android------广告条
- Android自定义控件---广告条滚动
- Android ViewPager实现广告条效果
- android自定义控件之滚动广告条
- android自定义控件之滚动广告条
- 打造Android一体化轮播广告条
- Android 使用ViewPager实现广告条滚动
- android 简单的广告条实现
- Android 上下滚动的广告条
- Android【垂直滚动广告条】仿淘宝头条1号店京东—垂直滚动广告条
- Android【垂直滚动广告条】仿淘宝头条1号店京东—垂直滚动广告条
- 广告条
- Android 上下滚动条、轮训滚动、广告条
- 【Android 进阶】淘宝头条:向上滚动广告条ViewFlipper
- Android 上下滚动条、轮训滚动、广告条
- 广告墙、推送广告、广告条
- cocos2d-x添加广告条(IOS and Android)
- cocos2d-x添加广告条(IOS and Android)
- 38万人昨日乘火车离京 有人提前12小时候车
- Android 百度地图开发 POI搜索
- 修改TabWidget字体大小、颜色、Gravity
- 使用yuicompressor 压缩js, CSS
- matlab当前目录下的相对路径
- Android------广告条
- 常用的android弹出对话框
- 《Linux Shell脚本攻略》学习(一)
- 为什么opencv的canny函数检测边缘的效果和matlab的不同
- 境外用卡小知识
- 引入外部js
- 今天威慑么就能放的开
- 博主毕业以来总结的android经验,想起来什么就加点
- LinkedList源码分析