android实现图片左右滑动效果:viewpager
2016-06-08 14:29
986 查看
看着大神在做项目,很多都不会的自己闲着多尴尬,看着博客上图片左右滑动效果,别人弄的好漂亮,自己不会,着急。于是自己也练练
在网上搜了下思路,好多都是使用viewpager+fragment。不过我这里仅仅使用了viewpager来实现。
注:本demo参考http://my.oschina.net/u/1409622/blog/178881?fromerr=HggRBpI8
http://www.it165.net/pro/html/201502/33844.html
http://blog.csdn.net/singwhatiwanna/article/details/8875241
都值得学习的大神!呵呵!码自其处!
不啰嗦了,贴码吧!
xml布局:
实现方法:
好了,给大家看一下效果图吧!
![](https://img-blog.csdn.net/20160608144339393?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160608144438471?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
没事,多练练,反正闲着也是闲着!整天嘻嘻哈哈见到风儿就气浪。。。。。。。。(*^__^*) 嘻嘻……
在网上搜了下思路,好多都是使用viewpager+fragment。不过我这里仅仅使用了viewpager来实现。
注:本demo参考http://my.oschina.net/u/1409622/blog/178881?fromerr=HggRBpI8
http://www.it165.net/pro/html/201502/33844.html
http://blog.csdn.net/singwhatiwanna/article/details/8875241
都值得学习的大神!呵呵!码自其处!
不啰嗦了,贴码吧!
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" android:orientation="vertical" android:layout_gravity="center" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentBottom="true" android:gravity="center_horizontal|center_vertical" android:id="@+id/layout" > </LinearLayout> </RelativeLayout>
实现方法:
public class HomePageActivity extends Activity implements OnPageChangeListener { String TAG = "HomePageActivity"; private LinearLayout mLinearLayout; private ViewPager viewPager; private ImageView imageView;//显示数组图片的View private ImageView[] imgsArray;//图片数组 private ImageView[] diandianArray;//点数组 private int[] imgs = new int[]{R.drawable.baba, R.drawable.ningm, R.drawable.feather, R.drawable.flowers, R.drawable.lotus};//图片resource @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_page_activity); //xml中的LinearLayout布局 mLinearLayout = (LinearLayout)findViewById(R.id.layout); viewPager = (ViewPager)findViewById(R.id.viewPager); viewPager.setOnPageChangeListener(this); //设置图片resource的view imgsArray = new ImageView[imgs.length]; for(int i = 0; i < imgsArray.length; i++){ imageView = new ImageView(this); imgsArray[i] = imageView; imageView.setBackgroundResource(imgs[i]); } //设置点点的view diandianArray = new ImageView[imgs.length]; for(int i = 0 ; i < diandianArray.length; i++){ imageView = new ImageView(this); diandianArray[i] = imageView; if(i == 0){ diandianArray[i].setBackgroundResource(R.drawable.pagedot); }else{ diandianArray[i].setBackgroundResource(R.drawable.pagedotfocus); } Log.e(TAG, "diandianArray:" + diandianArray); //此处通过方法来设置点点的布局属性,并将点点的布局属性放入到xml中的mLinearLayout,显示出来 LinearLayout.LayoutParams linearLayout = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); linearLayout.width = 15; linearLayout.height = 15; linearLayout.leftMargin = 5; linearLayout.rightMargin = 5; linearLayout.bottomMargin = 3; mLinearLayout.addView(imageView,linearLayout); } viewPager.setAdapter(new ContentAdapter()); } @Override public void onPageScrollStateChanged(int arg0) { Log.e(TAG, "onPageScrollStateChanged()方法有没有响应啊,吱一声啊!1"); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { Log.e(TAG, "onPageScrolled()方法有没有响应啊,吱一声啊!2"); } @Override public void onPageSelected(int position) { Log.e(TAG, "onPageSelected()方法有没有响应啊,吱一声啊!3"); for(int i = 0; i < diandianArray.length; i++){ diandianArray[position].setBackgroundResource(R.drawable.pagedot); if(i != position){ diandianArray[i].setBackgroundResource(R.drawable.pagedotfocus); } } } public class ContentAdapter extends PagerAdapter{ @Override public int getCount() { return imgs.length ; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(imgsArray[position]); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(imgsArray[position],0); return imgsArray[position]; } } public void OnPageChangeListener(){ Intent mIntent = new Intent(this,CalendarActivity.class); startActivity(mIntent); } }
好了,给大家看一下效果图吧!
没事,多练练,反正闲着也是闲着!整天嘻嘻哈哈见到风儿就气浪。。。。。。。。(*^__^*) 嘻嘻……
相关文章推荐
- Android Studio方法注释模板
- android上传文件到服务器
- Android基础知识之broadcast广播详解
- Competitor Heap Limit
- Android Studio 和SVN进行关联
- Android Studio代码混淆插件
- 如何脱离Android源码环境编译aapt
- Android如何防止apk程序被反编译
- 在Android创建自定义View
- Android-Serializable
- android make编译 no rule to make "xxx",need "xxx"
- android webview与js交互时遇到的问题解决
- android实现通话录音
- 详解android:scaleType属性
- 精品学习网址
- Android只GLSurfaceView画立方体测试代码
- Android Java层的hook检测(Cydia Substrate或者Xposed框架)
- Android Training学习笔记之适配不同的设备
- [转]Android:改变Activity切换方式
- canvas下的save(),restore(),translate(),rotate()