登录 立即注册
安币:
楼主: Wsdtg
打印 上一主题 下一主题

重庆时时彩反倍投打法| Android巧用ViewPager实现左右循环滑动图片,android 仿viewpager

[复制链接]

322

主题

322

帖子

1671

安币

手工艺人

跳转到指定楼层
楼主
发表于 2018-1-9 12:26:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文来源:http://www.oneupabq.com/a/www.jxcn.cn/

重庆时时彩独胆倍投 www.oneupabq.com,提起沙拉,人们总是不由自主地联想到生菜一类的绿叶菜或者各种水果,最多嘛,在这里介绍的鲜虾芒果沙拉,把海鲜、水果和绿叶鲜蔬结合在一起,配上经典油醋汁,虾12只,150克。活动采取实地察看、现场点评和交流总结相结合的方式进行。


        viewpager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图:

        

        1、首先看一些layout下的xml

[Java] 查看源文件 复制代码
<framelayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:orientation="vertical" > 
   
  <android.support.v4.view.viewpager  
    android:id="@+id/viewpager"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" />  
     
  <relativelayout  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:orientation="vertical" >  
  
    <linearlayout  
      android:id="@+id/viewgroup"  
      android:layout_width="fill_parent"  
      android:layout_height="wrap_content"  
      android:layout_alignparentbottom="true"  
      android:layout_marginbottom="30dp"  
      android:gravity="center_horizontal"  
      android:orientation="horizontal" >  
    </linearlayout>  
  </relativelayout>  
 
</framelayout> 

        使用viewpager首先需要引入android-support-v4.jar这个jar包,自己不要忘记加

[Java] 查看源文件 复制代码
package com.example.viewpagerdemo; 
 
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.view.viewgroup.layoutparams; 
import android.widget.imageview; 
import android.widget.linearlayout; 
 
public class twoactivity extends activity implements onpagechangelistener{ 
  /** 
   * viewpager 
   */ 
  private viewpager viewpager; 
   
  /** 
   * 装点点的imageview数组 
   */ 
  private imageview[] tips; 
   
  /** 
   * 装imageview数组 
   */ 
  private imageview[] mimageviews; 
   
  /** 
   * 图片资源id 
   */ 
  private int[] imgidarray ; 
 
  @override 
  protected void oncreate(bundle savedinstancestate) { 
    super.oncreate(savedinstancestate); 
    setcontentview(r.layout.activity_main); 
    viewgroup group = (viewgroup)findviewbyid(r.id.viewgroup); 
    viewpager = (viewpager) findviewbyid(r.id.viewpager); 
     
    //载入图片资源id 
    imgidarray = new int[]{r.drawable.item01, r.drawable.item02, r.drawable.item03, r.drawable.item04, 
        r.drawable.item05,r.drawable.item06, r.drawable.item07, r.drawable.item08}; 
     
     
    //将点点加入到viewgroup中 
    tips = new imageview[imgidarray.length]; 
    for(int i=0; i<tips.length; i++){ 
      imageview imageview = new imageview(this); 
      imageview.setlayoutparams(new layoutparams(10,10)); 
      tips[i] = imageview; 
      if(i == 0){ 
        tips[i].setbackgroundresource(r.drawable.page_indicator_focused); 
      }else{ 
        tips[i].setbackgroundresource(r.drawable.page_indicator_unfocused); 
      } 
       
      linearlayout.layoutparams layoutparams = new linearlayout.layoutparams(new viewgroup.layoutparams(layoutparams.wrap_content,  
          layoutparams.wrap_content)); 
      layoutparams.leftmargin = 5; 
      layoutparams.rightmargin = 5; 
      group.addview(imageview, layoutparams); 
    } 
     
     
    //将图片装载到数组中 
    mimageviews = new imageview[imgidarray.length]; 
    for(int i=0; i<mimageviews.length; i++){ 
      imageview imageview = new imageview(this); 
      mimageviews[i] = imageview; 
      imageview.setbackgroundresource(imgidarray[i]); 
    } 
     
    //设置adapter 
    viewpager.setadapter(new myadapter()); 
    //设置监听,主要是设置点点的背景 
    viewpager.setonpagechangelistener(this); 
    //设置viewpager的默认项, 设置为长度的100倍,这样子开始就能往左滑动 
    viewpager.setcurrentitem((mimageviews.length) * 100); 
     
  } 
   
  /** 
   * 
   * @author xiaanming 
   * 
   */ 
  public class myadapter extends pageradapter{ 
 
    @override 
    public int getcount() { 
      return integer.max_value; 
    } 
 
    @override 
    public boolean isviewfromobject(view arg0, object arg1) { 
      return arg0 == arg1; 
    } 
 
    @override 
    public void destroyitem(view container, int position, object object) { 
      ((viewpager)container).removeview(mimageviews[position % mimageviews.length]); 
       
    } 
 
    /** 
     * 载入图片进去,用当前的position 除以 图片数组长度取余数是关键 
     */ 
    @override 
    public object instantiateitem(view container, int position) { 
      ((viewpager)container).addview(mimageviews[position % mimageviews.length], 0); 
      return mimageviews[position % mimageviews.length]; 
    } 
     
     
     
  } 
 
  @override 
  public void onpagescrollstatechanged(int arg0) { 
     
  } 
 
  @override 
  public void onpagescrolled(int arg0, float arg1, int arg2) { 
     
  } 
 
  @override 
  public void onpageselected(int arg0) { 
    setimagebackground(arg0 % mimageviews.length); 
  } 
   
  /** 
   * 设置选中的tip的背景 
   * @param selectitems 
   */ 
  private void setimagebackground(int selectitems){ 
    for(int i=0; i<tips.length; i++){ 
      if(i == selectitems){ 
        tips[i].setbackgroundresource(r.drawable.page_indicator_focused); 
      }else{ 
        tips[i].setbackgroundresource(r.drawable.page_indicator_unfocused); 
      } 
    } 
  } 
 
} 

        源码下载:左右滑动viewpager

        2、上面的代码中,当只有3张图片或者2张图片的时候,滑动存在bug问题的修改如下
destroyitem(view container, int position, object object)方法中不removeview

[Java] 查看源文件 复制代码
 @override 
    public void destroyitem(view container, int position, object object) { 
//     ((viewpager)container).removeview(mimageviews[position % mimageviews.length]); 
    } 
instantiateitem(view container, int position)增加异常扑捉



[Java] 查看源文件 复制代码
@override 
  public object instantiateitem(view container, int position) { 
    try {  
      ((viewpager)container).addview(mimageviews[position % mimageviews.length], 0); 
    }catch(exception e){ 
      //handler something 
    } 
    return mimageviews[position % mimageviews.length]; 
  } 


分享到:  QQ好友和群 QQ空间 微信
收藏收藏 支持支持 反对反对

2

主题

8734

帖子

-2576

安币

限制会员

沙发
发表于 2018-1-10 04:41:36 | 只看该作者
安卓巴士是个不错的网站,我来顶个贴~

1

主题

8679

帖子

-2654

安币

限制会员

板凳
发表于 2018-1-10 20:44:48 | 只看该作者
感谢分享,安卓巴士有你更精彩:lol

9

主题

8749

帖子

-1916

安币

限制会员

QQ达人

地板
发表于 7 天前 | 只看该作者
感谢大神~

27

主题

8984

帖子

-1640

安币

限制会员

5#
发表于 5 天前 | 只看该作者
感谢大神~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

重庆时时彩独胆倍投广告投放| 申请友链|手机版|站点统计|重庆时时彩独胆倍投 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
河北快三今日推荐 终极极速赛车 淘宝店卖什么最赚钱 广东11选5走势图手机版 新疆时时彩专家选号
浙江快乐12 黑龙江时时彩q98777 北京赛车皇城娱乐 红包 时时彩有人赚钱吗 重庆老时时彩走势图