目前项目中需要用到ViewPager加载图片,现在在此记录一下。
首先先看布局文件:activity_main.xml
代码如下 | 复制代码 |
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.fly.viewpagerbanner.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_above="@+id/ll" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <LinearLayout android:id="@+id/ll" android:layout_marginTop="10.0dip" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="24.0dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true"/> |
MainActivity
代码如下 | 复制代码 |
packagecom.example.fly.viewpagerbanner;
importandroid.support.v4.view.ViewPager; importandroid.support.v7.app.AppCompatActivity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.ImageView; importandroid.widget.LinearLayout; importandroid.widget.Toast; importjava.util.ArrayList; importjava.util.HashMap; importjava.util.List; importjava.util.Map; /** * 类名: * 类描述:ViewPager展示图片 * 创建人:fly * 创建日期: 2017/1/16. * 版本:V1.0 */ publicclassMainActivityextendsAppCompatActivityimplementsViewPager.OnPageChangeListener,View.OnClickListener { privateViewPager vp; privateViewPagerAdapter vpAdapter; privateList<Map privateintlastValue = -1;// 是不是最后一张图片 privateImageView[] dots;//底部小点图片 privateintcurrentIndex;//记录当前选中位置 @Override protectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Intent intent = new Intent(); // intent.putStringArrayListExtra("GalleryPlusActivity",ArrayList ArrayList data = getData(imageLists); vp = (ViewPager) findViewById(R.id.viewpager); vpAdapter =newViewPagerAdapter(data,this); vp.setAdapter(vpAdapter); vp.addOnPageChangeListener(this); initDots();//初始化底部小点 } //这个方法长度是动态的,可以改成你从服务器获取的图片,这样数量就不确定啦 publicList<Map List<Map // if (imageLists != null && imageLists.size() > 0) { // for (int i = 0; i < imageLists.size(); i++) { // Map // map.put("url", imageLists.get(i)); // map.put("view", new ImageView(this)); // mData.add(map); // } // } Map map.put("url","http://img2.duitang.com/uploads/item/201207/19/20120719132725_UkzCN.jpeg"); map.put("view",newImageView(this)); mData.add(map); Map map1.put("url","http://img4.duitang.com/uploads/item/201404/24/20140424195028_vtvZu.jpeg"); map1.put("view",newImageView(this)); mData.add(map1); Map map2.put("url","http://download.pchome.net/wallpaper/pic-5041-8-240x320.jpg"); map2.put("view",newImageView(this)); mData.add(map2); Map map3.put("url","http://www.mangowed.com/uploads/allimg/130425/572-130425105311304.jpg"); map3.put("view",newImageView(this)); mData.add(map3); returnmData; } privatevoidinitDots() { LinearLayout.LayoutParams mLayoutParams =newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); mLayoutParams.setMargins(3,0,3,0); LinearLayout ll = (LinearLayout) findViewById(R.id.ll); dots =newImageView[data.size()]; //循环取得小点图片 for(inti =0; i < data.size(); i++) { dots[i] =newImageView(this); dots[i].setLayoutParams(mLayoutParams); dots[i].setBackgroundResource(R.drawable.dot); dots[i].setEnabled(true);//都设为灰色 dots[i].setOnClickListener(this); dots[i].setTag(i);//设置位置tag,方便取出与当前位置对应 ll.addView(dots[i]); } currentIndex =0; dots[currentIndex].setEnabled(false);//设置为白色,即选中状态 } privatevoidsetCurView(intposition) {/**设置当前的引导页*/ if(position<0|| position="">= data.size()) {return;} vp.setCurrentItem(position); } privatevoidsetCurDot(intposition) {/**设置当前引导小点的选中*/ if(position<0|| position="">data.size() -1|| currentIndex == position) {return;} dots[position].setEnabled(false); dots[currentIndex].setEnabled(true); currentIndex = position; } @Override//当前页面被滑动时调用 publicvoidonPageScrolled(intposition,floatpositionOffset,intpositionOffsetPixels) { lastValue = position; } @Override publicvoidonPageSelected(intposition) { //当新的页面被选中时调用 setCurDot(position);//设置底部小点选中状态 } @Override publicvoidonPageScrollStateChanged(intstate) { //当滑动状态改变时调用 if(state ==0){ if(lastValue == data.size()-1){ Toast.makeText(this,"已经是最后一张了", Toast.LENGTH_SHORT).show(); } } } @Override publicvoidonClick(View v) { intposition = (Integer)v.getTag(); setCurView(position); setCurDot(position); } } |
ViewPagerAdapter
代码如下 | 复制代码 |
packagecom.example.fly.viewpagerbanner; importandroid.content.Context; importandroid.support.v4.view.PagerAdapter; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.ImageView; importcom.bumptech.glide.Glide; importcom.bumptech.glide.load.engine.DiskCacheStrategy; importjava.util.List; importjava.util.Map; publicclassViewPagerAdapterextendsPagerAdapter { Context context; List<Map publicViewPagerAdapter(List<Map this.viewLists = lists; this.context = context; } @Override publicintgetCount() { //获得size returnviewLists.size(); } @Override publicbooleanisViewFromObject(View view, Object object) { returnview == object; } @Override publicvoiddestroyItem(ViewGroup view,intposition, Object object) {//销毁Item ImageView x = (ImageView) viewLists.get(position).get("view"); x.setScaleType(ImageView.ScaleType.FIT_CENTER); view.removeView(x); } @Override publicObject instantiateItem(ViewGroup view,intposition){//实例化Item ImageView imageView = (ImageView) viewLists.get(position).get("view"); imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); Glide.with(context) .load(viewLists.get(position).get("url").toString()) // .placeholder(R.mipmap.new_default) .error(R.mipmap.ic_launcher) .diskCacheStrategy(DiskCacheStrategy.RESULT) .into(imageView); view.addView(imageView,0); returnviewLists.get(position).get("view"); } } |
是不是很简单。
安卓手机如何可以多开微信?下面小编给大家带来了安卓手机多开微信的教程,感兴趣的朋友来看一看吧。不少网友会在后台给小编留言,他们想要了解一下关于微信分身的教程。今天,我们就以安卓手机为例子给大家讲解一下微信分身的教程,那么,安卓手机怎么微信分身?一起来了解一下安卓手机微信分身教程!
安卓手机微信分身教程:
第一步:下载多开软件(如:应用多开助手)
第二步:选择微信点击制作
打开软件,第一眼小编就看到了微信,于是点击制作,等待几分钟制作分身包。
第三步:分身包制作完成并安装
N分钟以后,当你的手机弹出的框内容为开始签名身份文件的时候证明马上就好了。
第四步:安装第二个微信
分身包装好后,你的手机就会弹出安装的窗口。点击安装。静待安装成功。
第五步:检查安装成功
安装成功可以直接打开,或者是关闭,再打开;
小编是先关闭到桌面上查看一下;
咦,发现了个缺点,两个微信的名字一模一样;
不过小编已经很满足了;
第六步:登录
安装成功了,试下看能否登录成功;
登录的时候发现,需要验证才可以,验证问题是,选择出至少两个好友的头像,这个问题对于小编来说太简单了(这步小编忘记截图了);
验证完成登录成功;
第七步:发消息给小伙伴验证
发条消息给小伙伴,看看小伙伴是否能收到信息;
验证成功,到此多装成功;
第八步:再制作一个
和上面的制作步骤一样,再来制作一个;
小编没有多余的微信号了,麻烦亲们再试下;
第九步:安全验证
打开手机自带的安全中心进行安全扫描:安全;
小米手机的录屏功能支持哪些手机型号?下面小编整理了支持的手机型号,感兴趣的朋友可以来看一看。小米手机录屏支持型号
相信很多人喜欢用小米,一个很大的原因便是功能丰富多样的MIUI。而本周,MIUI又更新了一个很多人非常期待的功能:录屏。目前支持的机型有小米3/4/5以及小米note,后续会继续完善。
对于这样一个贴心又实用的功能,其应用场景当然也是非常多的,比如记录和解说精彩的游戏过程;使用与分享APP的使用教程;随心所欲的吐槽;清晰地呈现Bug的复杂步骤等等。
而小米MIUI屏幕录制也有很多比较有意思的特点:首先无需ROOT,这样可以使手机的使用环境更安全;2.操作简单、极易上手,界面清晰;3.支持玩家解说;4.贴心的悬浮播放/停止按钮, 并且不会被录制到视频中;5.根据需要可自由组合分辨率、视频画质、帧数的设置;6.帮您录制所有的操作(包括界面滑动、所有物理按键);7.浏览、播放、删除、分享录制好的视频;