udpate README.md

master
winfirm 11 years ago
parent 731a0bbeac
commit 8ca6c74f29

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/> <classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/> <classpathentry kind="output" path="bin/classes"/>
</classpath> </classpath>

@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>AndroidImageIndicator</name> <name>AndroidImageIndicator</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>
<buildSpec> <buildSpec>
<buildCommand> <buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name> <name>org.eclipse.jdt.core.javabuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name> <name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments> <arguments>
</arguments> </arguments>
</buildCommand> </buildCommand>
</buildSpec> </buildSpec>
<natures> <natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature> <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.jdt.core.javanature</nature>
</natures> </natures>
</projectDescription> </projectDescription>

@ -1,8 +1,8 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/arrow_left_focus" android:state_pressed="true"/> <item android:drawable="@drawable/arrow_left_focus" android:state_pressed="true"/>
<item android:drawable="@drawable/arrow_left_focus" android:state_selected="true"/> <item android:drawable="@drawable/arrow_left_focus" android:state_selected="true"/>
<item android:drawable="@drawable/arrow_left_focus" android:state_focused="true"/> <item android:drawable="@drawable/arrow_left_focus" android:state_focused="true"/>
<item android:drawable="@drawable/arrow_left"/> <item android:drawable="@drawable/arrow_left"/>
</selector> </selector>

@ -1,8 +1,8 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/arrow_right_focus" android:state_pressed="true"/> <item android:drawable="@drawable/arrow_right_focus" android:state_pressed="true"/>
<item android:drawable="@drawable/arrow_right_focus" android:state_selected="true"/> <item android:drawable="@drawable/arrow_right_focus" android:state_selected="true"/>
<item android:drawable="@drawable/arrow_right_focus" android:state_focused="true"/> <item android:drawable="@drawable/arrow_right_focus" android:state_focused="true"/>
<item android:drawable="@drawable/arrow_right"/> <item android:drawable="@drawable/arrow_right"/>
</selector> </selector>

@ -1,53 +1,53 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" > android:orientation="vertical" >
<android.support.v4.view.ViewPager <android.support.v4.view.ViewPager
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:gravity="bottom" > android:gravity="bottom" >
<Button <Button
android:id="@+id/left_button" android:id="@+id/left_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/arrow_left_selector" /> android:background="@drawable/arrow_left_selector" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:gravity="bottom" > android:gravity="bottom" >
<Button <Button
android:id="@+id/right_button" android:id="@+id/right_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/arrow_right_selector" /> android:background="@drawable/arrow_right_selector" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/indicater_layout" android:id="@+id/indicater_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:gravity="center" android:gravity="center"
android:minHeight="10dp" android:minHeight="10dp"
android:minWidth="60dp" android:minWidth="60dp"
android:orientation="horizontal" > android:orientation="horizontal" >
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>

@ -1,7 +1,7 @@
<resources> <resources>
<!-- Default screen margins, per the Android Design guidelines. --> <!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen>
</resources> </resources>

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">AndroidImageIndicator</string> <string name="app_name">AndroidImageIndicator</string>
<string name="action_settings">Settings</string> <string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string> <string name="hello_world">Hello world!</string>
</resources> </resources>

@ -1,20 +1,20 @@
<resources> <resources>
<!-- <!--
Base application theme, dependent on API level. This theme is replaced Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices. by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
--> -->
<style name="AppBaseTheme" parent="android:Theme.Light"> <style name="AppBaseTheme" parent="android:Theme.Light">
<!-- <!--
Theme customizations available in newer API levels can go in Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here. backward-compatibility can go here.
--> -->
</style> </style>
<!-- Application theme. --> <!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme"> <style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. --> <!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style> </style>
</resources> </resources>

@ -1,460 +1,460 @@
package com.allthelucky.common.view; package com.allthelucky.common.view;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import android.content.Context; import android.content.Context;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.Parcelable; import android.os.Parcelable;
import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener; import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import com.app.library.common.view.R; import com.app.library.common.view.R;
/** /**
* ,(Gallery) * ,(Gallery)
* *
* @author savant-pan * @author savant-pan
* *
*/ */
public class ImageIndicatorView extends RelativeLayout { public class ImageIndicatorView extends RelativeLayout {
/** /**
* ViewPager * ViewPager
*/ */
private ViewPager viewPager; private ViewPager viewPager;
/** /**
* *
*/ */
private LinearLayout indicateLayout; private LinearLayout indicateLayout;
/** /**
* *
*/ */
private Button leftButton; private Button leftButton;
/** /**
* *
*/ */
private Button rightButton; private Button rightButton;
/** /**
* *
*/ */
private List<View> viewList = new ArrayList<View>(); private List<View> viewList = new ArrayList<View>();
private Handler refreshHandler; private Handler refreshHandler;
/** /**
* *
*/ */
private OnItemChangeListener onItemChangeListener; private OnItemChangeListener onItemChangeListener;
/** /**
* *
*/ */
private OnItemClickListener onItemClickListener; private OnItemClickListener onItemClickListener;
/** /**
* *
*/ */
private int totelCount = 0; private int totelCount = 0;
/** /**
* *
*/ */
private int currentIndex = 0; private int currentIndex = 0;
/** /**
* + * +
*/ */
public static final int INDICATE_ARROW_ROUND_STYLE = 0; public static final int INDICATE_ARROW_ROUND_STYLE = 0;
/** /**
* *
*/ */
public static final int INDICATE_USERGUIDE_STYLE = 1; public static final int INDICATE_USERGUIDE_STYLE = 1;
/** /**
* INDICATOR * INDICATOR
*/ */
private int indicatorStyle = INDICATE_ARROW_ROUND_STYLE; private int indicatorStyle = INDICATE_ARROW_ROUND_STYLE;
/** /**
* *
*/ */
private long refreshTime = 0l; private long refreshTime = 0l;
/** /**
* 广 * 广
*/ */
public interface OnItemChangeListener { public interface OnItemChangeListener {
void onPosition(int position, int totalCount); void onPosition(int position, int totalCount);
} }
/** /**
* *
*/ */
public interface OnItemClickListener { public interface OnItemClickListener {
void OnItemClick(View view, int position); void OnItemClick(View view, int position);
} }
public ImageIndicatorView(Context context, AttributeSet attrs) { public ImageIndicatorView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
this.init(context); this.init(context);
} }
public ImageIndicatorView(Context context) { public ImageIndicatorView(Context context) {
super(context); super(context);
this.init(context); this.init(context);
} }
/** /**
* @param context * @param context
*/ */
private void init(Context context) { private void init(Context context) {
LayoutInflater.from(context).inflate(R.layout.image_indicator_layout, this); LayoutInflater.from(context).inflate(R.layout.image_indicator_layout, this);
this.viewPager = (ViewPager) findViewById(R.id.view_pager); this.viewPager = (ViewPager) findViewById(R.id.view_pager);
this.indicateLayout = (LinearLayout) findViewById(R.id.indicater_layout); this.indicateLayout = (LinearLayout) findViewById(R.id.indicater_layout);
this.leftButton = (Button) findViewById(R.id.left_button); this.leftButton = (Button) findViewById(R.id.left_button);
this.rightButton = (Button) findViewById(R.id.right_button); this.rightButton = (Button) findViewById(R.id.right_button);
this.leftButton.setVisibility(View.GONE); this.leftButton.setVisibility(View.GONE);
this.rightButton.setVisibility(View.GONE); this.rightButton.setVisibility(View.GONE);
this.viewPager.setOnPageChangeListener(new PageChangeListener()); this.viewPager.setOnPageChangeListener(new PageChangeListener());
final ArrowClickListener arrowClickListener = new ArrowClickListener(); final ArrowClickListener arrowClickListener = new ArrowClickListener();
this.leftButton.setOnClickListener(arrowClickListener); this.leftButton.setOnClickListener(arrowClickListener);
this.rightButton.setOnClickListener(arrowClickListener); this.rightButton.setOnClickListener(arrowClickListener);
this.refreshHandler = new ScrollIndicateHandler(ImageIndicatorView.this); this.refreshHandler = new ScrollIndicateHandler(ImageIndicatorView.this);
} }
/** /**
* ViewPager * ViewPager
* *
* @return * @return
*/ */
public ViewPager getViewPager() { public ViewPager getViewPager() {
return viewPager; return viewPager;
} }
/** /**
* Index * Index
*/ */
public int getCurrentIndex() { public int getCurrentIndex() {
return this.currentIndex; return this.currentIndex;
} }
/** /**
* VIEW * VIEW
*/ */
public int getTotalCount() { public int getTotalCount() {
return this.totelCount; return this.totelCount;
} }
/** /**
* *
*/ */
public long getRefreshTime() { public long getRefreshTime() {
return this.refreshTime; return this.refreshTime;
} }
/** /**
* View * View
* *
* @param view * @param view
*/ */
public void addViewItem(View view) { public void addViewItem(View view) {
final int position = viewList.size(); final int position = viewList.size();
view.setOnClickListener(new ItemClickListener(position)); view.setOnClickListener(new ItemClickListener(position));
this.viewList.add(view); this.viewList.add(view);
} }
/** /**
* *
*/ */
private class ItemClickListener implements View.OnClickListener { private class ItemClickListener implements View.OnClickListener {
private int position = 0; private int position = 0;
public ItemClickListener(int position) { public ItemClickListener(int position) {
this.position = position; this.position = position;
} }
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (onItemClickListener != null) { if (onItemClickListener != null) {
onItemClickListener.OnItemClick(view, position); onItemClickListener.OnItemClick(view, position);
} }
} }
} }
/** /**
* Drawable * Drawable
* *
* @param resArray * @param resArray
* Drawable * Drawable
*/ */
public void setupLayoutByDrawable(final Integer resArray[]) { public void setupLayoutByDrawable(final Integer resArray[]) {
if (resArray == null) if (resArray == null)
throw new NullPointerException(); throw new NullPointerException();
this.setupLayoutByDrawable(Arrays.asList(resArray)); this.setupLayoutByDrawable(Arrays.asList(resArray));
} }
/** /**
* Drawable * Drawable
* *
* @param resList * @param resList
* Drawable * Drawable
*/ */
public void setupLayoutByDrawable(final List<Integer> resList) { public void setupLayoutByDrawable(final List<Integer> resList) {
if (resList == null) if (resList == null)
throw new NullPointerException(); throw new NullPointerException();
final int len = resList.size(); final int len = resList.size();
if (len > 0) { if (len > 0) {
for (int index = 0; index < len; index++) { for (int index = 0; index < len; index++) {
final View pageItem = new ImageView(getContext()); final View pageItem = new ImageView(getContext());
pageItem.setBackgroundResource(resList.get(index)); pageItem.setBackgroundResource(resList.get(index));
addViewItem(pageItem); addViewItem(pageItem);
} }
} }
} }
/** /**
* *
* *
* @param index * @param index
* postion * postion
*/ */
public void setCurrentItem(int index) { public void setCurrentItem(int index) {
this.currentIndex = index; this.currentIndex = index;
} }
/** /**
* INDICATOR_ARROW_ROUND_STYLE * INDICATOR_ARROW_ROUND_STYLE
* *
* @param style * @param style
* INDICATOR_USERGUIDE_STYLEINDICATOR_ARROW_ROUND_STYLE * INDICATOR_USERGUIDE_STYLEINDICATOR_ARROW_ROUND_STYLE
*/ */
public void setIndicateStyle(int style) { public void setIndicateStyle(int style) {
this.indicatorStyle = style; this.indicatorStyle = style;
} }
/** /**
* *
* *
* @param onGuideListener * @param onGuideListener
*/ */
public void setOnItemChangeListener(OnItemChangeListener onItemChangeListener) { public void setOnItemChangeListener(OnItemChangeListener onItemChangeListener) {
if (onItemChangeListener == null) { if (onItemChangeListener == null) {
throw new NullPointerException(); throw new NullPointerException();
} }
this.onItemChangeListener = onItemChangeListener; this.onItemChangeListener = onItemChangeListener;
} }
/** /**
* *
* *
* @param onItemClickListener * @param onItemClickListener
*/ */
public void setOnItemClickListener(OnItemClickListener onItemClickListener) { public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener; this.onItemClickListener = onItemClickListener;
} }
/** /**
* *
*/ */
public void show() { public void show() {
this.totelCount = viewList.size(); this.totelCount = viewList.size();
final LayoutParams params = (LayoutParams) indicateLayout.getLayoutParams(); final LayoutParams params = (LayoutParams) indicateLayout.getLayoutParams();
if (INDICATE_USERGUIDE_STYLE == this.indicatorStyle) {// 操作指引 if (INDICATE_USERGUIDE_STYLE == this.indicatorStyle) {// 操作指引
params.bottomMargin = 45; params.bottomMargin = 45;
} }
this.indicateLayout.setLayoutParams(params); this.indicateLayout.setLayoutParams(params);
// 初始化指示器 // 初始化指示器
for (int index = 0; index < this.totelCount; index++) { for (int index = 0; index < this.totelCount; index++) {
final View indicater = new ImageView(getContext()); final View indicater = new ImageView(getContext());
this.indicateLayout.addView(indicater, index); this.indicateLayout.addView(indicater, index);
} }
this.refreshHandler.sendEmptyMessage(currentIndex); this.refreshHandler.sendEmptyMessage(currentIndex);
// 为ViewPager配置数据 // 为ViewPager配置数据
this.viewPager.setAdapter(new MyPagerAdapter(this.viewList)); this.viewPager.setAdapter(new MyPagerAdapter(this.viewList));
this.viewPager.setCurrentItem(currentIndex, false); this.viewPager.setCurrentItem(currentIndex, false);
} }
/** /**
* *
*/ */
private class ArrowClickListener implements View.OnClickListener { private class ArrowClickListener implements View.OnClickListener {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (view == leftButton) { if (view == leftButton) {
if (currentIndex >= (totelCount - 1)) { if (currentIndex >= (totelCount - 1)) {
return; return;
} else { } else {
viewPager.setCurrentItem(currentIndex + 1, true); viewPager.setCurrentItem(currentIndex + 1, true);
} }
} else { } else {
if (totelCount <= 0) { if (totelCount <= 0) {
return; return;
} else { } else {
viewPager.setCurrentItem(currentIndex - 1, true); viewPager.setCurrentItem(currentIndex - 1, true);
} }
} }
} }
} }
/** /**
* *
*/ */
private class PageChangeListener implements OnPageChangeListener { private class PageChangeListener implements OnPageChangeListener {
@Override @Override
public void onPageSelected(int index) { public void onPageSelected(int index) {
currentIndex = index; currentIndex = index;
refreshHandler.sendEmptyMessage(index); refreshHandler.sendEmptyMessage(index);
} }
@Override @Override
public void onPageScrolled(int arg0, float arg1, int arg2) { public void onPageScrolled(int arg0, float arg1, int arg2) {
} }
@Override @Override
public void onPageScrollStateChanged(int arg0) { public void onPageScrollStateChanged(int arg0) {
} }
} }
/** /**
* *
*/ */
protected void refreshIndicateView() { protected void refreshIndicateView() {
this.refreshTime = System.currentTimeMillis(); this.refreshTime = System.currentTimeMillis();
for (int index = 0; index < totelCount; index++) { for (int index = 0; index < totelCount; index++) {
final ImageView imageView = (ImageView) this.indicateLayout.getChildAt(index); final ImageView imageView = (ImageView) this.indicateLayout.getChildAt(index);
if (this.currentIndex == index) { if (this.currentIndex == index) {
imageView.setBackgroundResource(R.drawable.image_indicator_focus); imageView.setBackgroundResource(R.drawable.image_indicator_focus);
} else { } else {
imageView.setBackgroundResource(R.drawable.image_indicator); imageView.setBackgroundResource(R.drawable.image_indicator);
} }
} }
if (INDICATE_USERGUIDE_STYLE == this.indicatorStyle) {// 操作指引不显示箭头 if (INDICATE_USERGUIDE_STYLE == this.indicatorStyle) {// 操作指引不显示箭头
this.leftButton.setVisibility(View.GONE); this.leftButton.setVisibility(View.GONE);
this.rightButton.setVisibility(View.GONE); this.rightButton.setVisibility(View.GONE);
} else {// 显示箭头各状态 } else {// 显示箭头各状态
if (totelCount <= 1) { if (totelCount <= 1) {
leftButton.setVisibility(View.GONE); leftButton.setVisibility(View.GONE);
rightButton.setVisibility(View.GONE); rightButton.setVisibility(View.GONE);
} else if (totelCount == 2) { } else if (totelCount == 2) {
if (currentIndex == 0) { if (currentIndex == 0) {
leftButton.setVisibility(View.VISIBLE); leftButton.setVisibility(View.VISIBLE);
rightButton.setVisibility(View.GONE); rightButton.setVisibility(View.GONE);
} else { } else {
leftButton.setVisibility(View.GONE); leftButton.setVisibility(View.GONE);
rightButton.setVisibility(View.VISIBLE); rightButton.setVisibility(View.VISIBLE);
} }
} else { } else {
if (currentIndex == 0) { if (currentIndex == 0) {
leftButton.setVisibility(View.VISIBLE); leftButton.setVisibility(View.VISIBLE);
rightButton.setVisibility(View.GONE); rightButton.setVisibility(View.GONE);
} else if (currentIndex == (totelCount - 1)) { } else if (currentIndex == (totelCount - 1)) {
leftButton.setVisibility(View.GONE); leftButton.setVisibility(View.GONE);
rightButton.setVisibility(View.VISIBLE); rightButton.setVisibility(View.VISIBLE);
} else { } else {
leftButton.setVisibility(View.VISIBLE); leftButton.setVisibility(View.VISIBLE);
rightButton.setVisibility(View.VISIBLE); rightButton.setVisibility(View.VISIBLE);
} }
} }
} }
if (this.onItemChangeListener != null) {// 页面改更了 if (this.onItemChangeListener != null) {// 页面改更了
try { try {
this.onItemChangeListener.onPosition(this.currentIndex, this.totelCount); this.onItemChangeListener.onPosition(this.currentIndex, this.totelCount);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
public class MyPagerAdapter extends PagerAdapter { public class MyPagerAdapter extends PagerAdapter {
private List<View> pageViews = new ArrayList<View>(); private List<View> pageViews = new ArrayList<View>();
public MyPagerAdapter(List<View> pageViews) { public MyPagerAdapter(List<View> pageViews) {
this.pageViews = pageViews; this.pageViews = pageViews;
} }
@Override @Override
public int getCount() { public int getCount() {
return pageViews.size(); return pageViews.size();
} }
@Override @Override
public boolean isViewFromObject(View arg0, Object arg1) { public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1; return arg0 == arg1;
} }
@Override @Override
public int getItemPosition(Object object) { public int getItemPosition(Object object) {
return super.getItemPosition(object); return super.getItemPosition(object);
} }
@Override @Override
public void destroyItem(View arg0, int arg1, Object arg2) { public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(pageViews.get(arg1)); ((ViewPager) arg0).removeView(pageViews.get(arg1));
} }
@Override @Override
public Object instantiateItem(View arg0, int arg1) { public Object instantiateItem(View arg0, int arg1) {
((ViewPager) arg0).addView(pageViews.get(arg1)); ((ViewPager) arg0).addView(pageViews.get(arg1));
return pageViews.get(arg1); return pageViews.get(arg1);
} }
@Override @Override
public void restoreState(Parcelable arg0, ClassLoader arg1) { public void restoreState(Parcelable arg0, ClassLoader arg1) {
} }
@Override @Override
public Parcelable saveState() { public Parcelable saveState() {
return null; return null;
} }
@Override @Override
public void startUpdate(View arg0) { public void startUpdate(View arg0) {
} }
@Override @Override
public void finishUpdate(View arg0) { public void finishUpdate(View arg0) {
} }
} }
} }
class ScrollIndicateHandler extends Handler { class ScrollIndicateHandler extends Handler {
private ImageIndicatorView scrollIndicateView; private ImageIndicatorView scrollIndicateView;
public ScrollIndicateHandler(ImageIndicatorView scrollIndicateView) { public ScrollIndicateHandler(ImageIndicatorView scrollIndicateView) {
this.scrollIndicateView = scrollIndicateView; this.scrollIndicateView = scrollIndicateView;
} }
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
super.handleMessage(msg); super.handleMessage(msg);
if (this.scrollIndicateView != null) { if (this.scrollIndicateView != null) {
scrollIndicateView.refreshIndicateView(); scrollIndicateView.refreshIndicateView();
} }
} }
} }

@ -34,15 +34,14 @@ public class AutoImageIndicatorActivity extends Activity {
private void initView() { private void initView() {
final Integer[] resArray = new Integer[] { R.drawable.poster1, R.drawable.poster2, R.drawable.poster3 }; final Integer[] resArray = new Integer[] { R.drawable.poster1, R.drawable.poster2, R.drawable.poster3 };
this.autoImageIndicatorView.setupLayoutByDrawable(resArray);//图片 this.autoImageIndicatorView.setupLayoutByDrawable(resArray);
this.autoImageIndicatorView.show(); this.autoImageIndicatorView.show();
AutoPlayManager autoBrocastManager = new AutoPlayManager(this.autoImageIndicatorView); AutoPlayManager autoBrocastManager = new AutoPlayManager(this.autoImageIndicatorView);
autoBrocastManager.setBroadcastEnable(true); autoBrocastManager.setBroadcastEnable(true);
autoBrocastManager.setBroadCastTimes(5);//循环播放5 autoBrocastManager.setBroadCastTimes(5);//循环
autoBrocastManager.setBroadcastTimeIntevel(3 * 1000, 3 * 1000);//播放启动时间及间隔 autoBrocastManager.setBroadcastTimeIntevel(3 * 1000, 3 * 1000);//首次启动时间及间隔
autoBrocastManager.loop(); autoBrocastManager.loop();
} }
} }

@ -5,31 +5,26 @@ Android image indicator for user guide or auto broadcast effect.
Style 1: Style 1:
---------------------- ----------------------
common mode:
common mode:
<com.allthelucky.common.view.ImageIndicatorView <com.allthelucky.common.view.ImageIndicatorView
android:id="@+id/indicate_view" android:id="@+id/indicate_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="160dp" /> android:layout_height="160dp" />
set ImageIndicatorView as: set ImageIndicatorView as:
AutoPlayManager autoBrocastManager = new AutoPlayManager(this.autoImageIndicatorView);
imageIndicatorView = (ImageIndicatorView) findViewById(R.id.indicate_view); autoBrocastManager.setBroadcastEnable(true);
final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; autoBrocastManager.setBroadCastTimes(5);//循环次数
imageIndicatorView.setupLayoutByDrawable(resArray); autoBrocastManager.setBroadcastTimeIntevel(3 * 1000, 3 * 1000);//首次启动时间及间隔
imageIndicatorView.show(); autoBrocastManager.loop();
broadcast mode:
broadcast mode:
<com.allthelucky.common.view.AutoImageIndicatorView <com.allthelucky.common.view.AutoImageIndicatorView
android:id="@+id/auto_indicate_view" android:id="@+id/auto_indicate_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="160dp" /> android:layout_height="160dp" />
set AutoImageIndicatorView as: set AutoImageIndicatorView as:
autoImageIndicatorView = (AutoImageIndicatorView) findViewById(R.id.auto_indicate_view); autoImageIndicatorView = (AutoImageIndicatorView) findViewById(R.id.auto_indicate_view);
final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher };
autoImageIndicatorView.setBroadcastEnable(true); autoImageIndicatorView.setBroadcastEnable(true);
@ -40,23 +35,19 @@ set AutoImageIndicatorView as:
![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/poster0.jpg) ![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/poster0.jpg)
Style2(user guide mode): Style2(user guide mode):
----------------------
<com.allthelucky.common.view.ImageIndicatorView <com.allthelucky.common.view.ImageIndicatorView
android:id="@+id/guide_indicate_view" android:id="@+id/guide_indicate_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
set ImageIndicatorView as: set ImageIndicatorView as:
this.imageIndicatorView = (ImageIndicatorView) findViewById(R.id.guide_indicate_view); this.imageIndicatorView = (ImageIndicatorView) findViewById(R.id.guide_indicate_view);
final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher }; final Integer[] resArray = new Integer[] { R.drawable.ic_launcher, R.drawable.ic_launcher };
imageIndicatorView.setupLayoutByDrawable(resArray); imageIndicatorView.setupLayoutByDrawable(resArray);
imageIndicatorView.setIndicateStyle(ImageIndicatorView.INDICATE_USERGUIDE_STYLE); imageIndicatorView.setIndicateStyle(ImageIndicatorView.INDICATE_USERGUIDE_STYLE);
imageIndicatorView.show(); imageIndicatorView.show();
![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/guider_00.jpg) ![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/guider_00.jpg)
![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/guider_01.jpg) ![ScreenShot](https://raw.github.com/winfirm/android-image-indicator/master/AndroidImageIndicatorSample/screenshot/guider_01.jpg)

Loading…
Cancel
Save