实现图片轮播,并且带圆点 ,轮播时 圆点改变颜色;

package com.example.day14;

import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import com.lidroid.xutils.BitmapUtils;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
int count = 0;
int olddotindex = 0;
//图片数据
private String[] image_url = new String[]{
"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",
"http://img3.3lian.com/2013/s1/20/d/57.jpg",
"http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg",
"http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"};
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {

pager.setCurrentItem(count);
dots.get(olddotindex).setBackgroundResource(R.drawable.dot_nomal);
dots.get(count).setBackgroundResource(R.drawable.dot_focus);
olddotindex=count;

};
};
private ArrayList<View> dots;
private LinearLayout la;
private ArrayList<ImageView> images;
private ViewPager pager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

init();

}
private void init() {
// TODO Auto-generated method stub
pager = (ViewPager) findViewById(R.id.viewpager);
la = (LinearLayout) findViewById(R.id.yuandian);
//获得网络图片,配置给Veiwpager
getImageViewList();
//获得圆点
getDotList();
//设置第一个圆点为选中状态
dots.get(0).setBackgroundResource(R.drawable.dot_focus);
pager.setAdapter(new myvpAdapter());
//通过定时器,制作自动划动效果
Timer timer=new Timer();
timer.schedule(new TimerTask() {

@Override
public void run() {
// TODO Auto-generated method stub
count++;
if (count==4) {
count=0;
}

handler.sendEmptyMessage(count);
}
}, 3000, 2000);
}
//获得圆点
private void getDotList() {
dots = new ArrayList<View>();
//循环图片数组,创建对应数量的dot
for (int i = 0; i < image_url.length; i++) {
View view=LayoutInflater.from(this).inflate(R.layout.dot, null);//加载布局;
//得到布局中的dot点组件
View dot=view.findViewById(R.id.dotview);
//收集dot;
dots.add(dot);
//把布局添加到线性布局
la.addView(view);
}
}
//获得网络图片,配置给Veiwpager
private void getImageViewList() {
images = new ArrayList<ImageView>();
BitmapUtils bitmapUtils=new BitmapUtils(this);
//加载图片;
for (int i = 0; i < image_url.length; i++) {
ImageView imageView=new ImageView(this);
imageView.setScaleType(ScaleType.FIT_XY);
bitmapUtils.display(imageView, image_url[i]);
images.add(imageView);
}

}
class myvpAdapter extends PagerAdapter{

@Override
public int getCount() {
// TODO Auto-generated method stub
return images.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub

ImageView im=images.get(position);
container.removeView(im);

}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(images.get(position));
return images.get(position);

}
}
}

在res下建立一个drawable文件夹;

在drawable里面创建2个xml文件;

一个是dot_focus.xml;

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

</shape>

一个是dot_nomal.xml;

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

acitivity_main.xml里的布局;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"

/>
<LinearLayout
android:id="@+id/yuandian"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_alignParentBottom="true"
></LinearLayout>
</RelativeLayout>

在layout里面建一个dot.xml;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:id="@+id/dotview"
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_margin="10dp"
android:background="@drawable/dot_nomal"
/>

</LinearLayout>

时间: 2024-10-19 16:06:05

实现图片轮播,并且带圆点 ,轮播时 圆点改变颜色;的相关文章

jQuery图片轮播(一)轮播实现并封装

利用面向对象自己动手写了一个封装好的jquery轮播对象,可满足一般需求,需要使用时只需调用此对象的轮播方法即可. demo:https://github.com/zsqosos/shopweb 具体代码如下: HTML结构: 1 <div class="banner" id="J_bg_ban"> 2 <ul> 3 <li><a href="#"><img src="banner_

js无缝轮播 和淡入淡出轮播

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{margin:0;padding:0;} ul,li{ list-style: none; } #banner{ width: 800px; height: 400px; margin: 30

视频编辑时怎么用颜色轮

小伙伴平时肯定能在网络上看到各种各样的视频吧,它们有的搞笑,有的炫酷,有的教育......那么你们有没有想过做出带有自己创意的视频呢?其实这个愿望很容易实现的,学好一款视频编辑软件就可以了.今天小编就给你们推荐一款功能强大且易于上手的视频编辑软件,它就是EDIUS视频编辑软件.紧接着小编将会通过提供EIDUS教程的方法来教会大家使用它. 现在我们就来学习一下如何DIUS色彩校正之颜色轮的使用方法. 1.首先我们先做好准备工作.先把图片素材导入到EDIUS中,然后打开特效面板选择色彩校下面的颜色轮

什么是 A 轮融资?有 B轮 C轮么?

融资的顺序是A轮 B轮 C轮这之前还有天使轮,种子轮,首轮在这之后还有vc/pe,ipo等等,只是一些不同时段的融资 Chen Shu 知乎用户.千叶光.angle LI 等人赞同 就是公司的初卖.再卖.还卖.又卖.续卖.

js简单 图片版时钟,带翻转效果

js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>时钟</title> <style type="text/css"> ul,li{ list-style: none; margin: 0; padding: 0; } ul{ position: absolute; left: 2

H3C组播系列之IP组播概述

一.组播的基本介绍 组播指发送源将产生的单一IP数据包通过网络发送给一组特定接收者的网络传输方式.组播结合了单播和广播的优点,在进行点到多点传输时,发送源不需要关心接受者的数目,仅需要发送一份报文:路由器仅关心接口下是否有接收者,同样不需要关心接收者的数量,所以在路由器之间的链路上也仅传送一份报告. 和单播相比,组播减轻了发送源的负担,并且提高了链路的有效利用率.此外,发送源可以同时发送报文给多个接收者,可以满足低延时应用的需求. 和广播相比,组播方式下路由器仅在有接收者的接口复制报文,报文最终

C#实现任意源组播与特定源组播

IP组播通信需要一个特殊的组播地址,IP组播地址是一组D类IP地址,范围从224.0.0.0 到 239.255.255.255.其中还有很多地址是为特殊的目的保留的.224.0.0.0到224.0.0.255的地址最好不要用,因为他们大多是为了特殊的目的保持的(比如IGMP协议). IGMP是IP组播的基础.在IP协议出现以后为了加入对组播的支持,IGMP产生了.IGMP所做的实际上就是告诉路由器,在这个路由器所在的子网内有 人对发送到某一个组播组的数据感兴趣,这样当这个组播组的数据到达后面,

maven编译带中文的工程时出现syntax error的问题

在编译带中文的maven工程时,尽管pom文件中设置了<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>,但仍然会报错,如下信息: [ERROR] Failed to execute goal org.apache.felix:maven-scr-plugin:1.7.2:scr (generate-scr-scrdescriptor) on project toolkit.monitor.manag

UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色

在iOS8系统下,UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色,本来设置的是绿色的:而且程序首次启动时也是系统默认的蓝色 UIImage *image=[UIImage imageNamed:@"xxxx"]; //设置选中时的图标 UIImage *selectedImage=[UIImage imageNamed: @"xxxx"]; // 声明这张图片用原图(别渲染) selectedImage = [sel

即时搜索:对于ios自带输入法输入中文时多次触发input事件的处理

实现移动端的即时搜索的最佳方案,一定是使用input propertychange事件了,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现多次触发input事件的情况,一开始可能由于搜索的关键字不得法,没有即时找到合适的方案,后来终于在网上找到了解决方案,现记录如下: 代码实现 /** * @param flag: 用于标记是否是非直接的文字输入 */ var flag = false; $('#id').on({ 'compositionstart': function()