- 浏览: 434956 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
weiwu83:
为什么我在手机内访问127.0.0.1访问不了呀
NanoHttpd 构建android 手机端的HttpServer -
jiae:
为啥我的插入语句乱码? 但是可以插入数据库 然后复制你 ...
SQLite3 在应用启动时初始化数据 -
lichenxiao77:
...
android 连接远程数据库 -
林源滔:
为什么我make clobber之后第一次执行make 可以。 ...
No rule to make target `out/target/common/obj/JAVA_LIBRARIES/bouncycastle_in -
cn23snyga:
new String(str.getBytes("I ...
android 平台上SQLite3中文乱码 --我的小bug
1.简介
ViewFlipper extends ViewAnimator,Simple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each child at a regular interval。
简单的ViewAnimator 可以在两个或两个以上的视图间实现动画效果,但是一次只能显示一个子类。如果设置的话,子类可以按照一定规律来显示。
2. 具体使用
边上代码边解释
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff"> <!-- 滑动翻页显示 --> <ViewFlipper android:orientation="vertical" android:id="@+id/ViewFlipper" android:layout_width="fill_parent" android:layout_height="75dip" android:background="@drawable/gradient_dark_purple"> <!-- (0) Loading --> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="15dip" android:gravity="left|center_vertical"> <com.teleca.jamendo.widget.ProgressBar android:id="@+id/ProgressBar" android:layout_width="wrap_content" android:layout_height="wrap_content"> </com.teleca.jamendo.widget.ProgressBar> </LinearLayout> <!-- (1) Gallery --> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"> <Gallery android:id="@+id/Gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:spacing="0px" /> </LinearLayout> <!-- (2) Failure --> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="15dip" android:gravity="left|center_vertical"> <com.teleca.jamendo.widget.FailureBar android:id="@+id/FailureBar" android:layout_width="wrap_content" android:layout_height="wrap_content"> </com.teleca.jamendo.widget.FailureBar> </LinearLayout> </ViewFlipper> </LinearLayout>
在viewflipper中有三个线性布局,分别为初始加载和加载后以及加载失败。当我们在activity中这个viewflipper实例化时,我们打印
mViewFlipper.getDisplayedChild()
会得到3。说明三个linnerlayout为她的子类。同时为了怕给主线程增加负担,我们采用异步实现。
private class NewsTask extends AsyncTask<Void, WSError, Album[]> { @Override public void onPreExecute() { mViewFlipper.setDisplayedChild(0); System.out.println("子类数目----"+mViewFlipper.getChildCount()+" "+mViewFlipper.getDisplayedChild()); mProgressBar.setText(R.string.loading_news); super.onPreExecute(); } @Override public Album[] doInBackground(Void... params) { JamendoGet2Api server = new JamendoGet2ApiImpl(); Album[] albums = null; try { albums = server.getPopularAlbumsWeek(); } catch (JSONException e) { e.printStackTrace(); } catch (WSError e){ publishProgress(e); } System.out.println("doInBackground"+mViewFlipper.getDisplayedChild()); return albums; } @Override public void onPostExecute(Album[] albums) { if(albums != null && albums.length > 0){ mViewFlipper.setDisplayedChild(1); ImageAdapter albumsAdapter = new ImageAdapter(HomeActivity.this); albumsAdapter.setList(albums); mGallery.setAdapter(albumsAdapter); mGallery.setOnItemClickListener(mGalleryListener); mGallery.setSelection(albums.length/2, true); // animate to center } else { mViewFlipper.setDisplayedChild(2); mFailureBar.setOnRetryListener(new OnClickListener(){ @Override public void onClick(View v) { new NewsTask().execute((Void)null); } }); mFailureBar.setText(R.string.connection_fail); } System.out.println("onPostExecute"+mViewFlipper.getDisplayedChild()); super.onPostExecute(albums); }
这个类实现了我们的操作。
在oncreate()中使用
new NewsTask().execute((Void)null);
调用异步操作。
接下来,我们只讲解子类1,即加载成功后的显示效果。
如图:
在以上代码中,if(albums != null && albums.length > 0){
mViewFlipper.setDisplayedChild(1);//设置显示第一面即成功加载后的效果
ImageAdapter albumsAdapter = new ImageAdapter(HomeActivity.this);//自定义了一个adpter,来组织显示样式
albumsAdapter.setList(albums);//将数据放入其中,那么albums 自然是个bean了。里面定义了albums 的各种属性,如发行时间,专辑名等。
mGallery.setAdapter(albumsAdapter);//给画布设置适配器,使画布显示出效果来。
mGallery.setOnItemClickListener(mGalleryListener);//添加监听,实现对指定专辑的使用
mGallery.setSelection(albums.length/2, true);} //设置默认显示区域
发表评论
-
Android.mk文件解析
2016-01-27 14:01 919以 tools/tradefederation/Androi ... -
NanoHttpd 构建android 手机端的HttpServer
2015-10-20 16:24 2931NanoHttpd是Github上的一个开源项目, 通过下载 ... -
permission denial : android.permission.INTERACT_ACROSS_USERS_FULL
2015-08-05 16:50 5040在android5.0上运行 Runtime.getRun ... -
android getprop() 和 java System.getPropety()
2015-06-04 14:39 63411 System.getPropety()是java中的方 ... -
android cts测试相关
2015-05-27 17:38 0example: -
android uiautomator 相关
2015-05-15 16:53 16901 Runtime.getRuntime().exec 启 ... -
android UI test Espresso
2015-04-10 18:31 1197google android UI测试工具 espresso ... -
android 安全(转)
2014-12-26 12:37 719一 如何不被反编译解析1防止反编译工具的反编译 查看 ... -
nexus related
2014-12-17 15:29 7351 nexus drivers https://deve ... -
git related
2014-12-17 15:24 9611 see all detailed git info ... -
ubuntu android studio 配置和使用
2014-12-10 17:34 3624Ubuntu 64位,Android studio 的安装, ... -
eclipse+ADT+android配置相关
2014-12-05 16:40 14461 eclipse 过旧时,ant 运行不了,会报sdk. ... -
anroid 开发小知识点
2014-10-09 09:52 8201 1)代码 获取APK安装路径和包名 L ... -
androird 内存泄露 浅析
2013-06-19 17:52 1440主要是记录工作中出 ... -
java层堆栈调用的打印
2012-12-26 15:14 44641. 在指定的函数内打印相关java调用 Log.d ... -
sms AT指令返回错误代码: CMS errors & CME errors 的区别!
2012-10-26 18:35 12004CMS的是短信中心的返回错误。 CME 是设备返 ... -
sms 发送 radio log
2012-10-26 17:25 4065发送短信:radio.log 关键字 :SEND_SMS ... -
SQLite --函数
2012-09-03 18:22 1972一、日期和时间函数:原文地址SQLite主要支持以下 ... -
Low memory killer
2012-08-09 11:47 16151,引入原因 Android是一个多任务系统,也 ... -
OTA 文档地址 及开发
2012-07-06 13:18 1724[OTA]制作OTA短信来配置手机与服务器同步 ...
相关推荐
在这个“最简单的ViewFlipper实现图片跟随手势滑动”的教程中,我们将深入探讨如何通过源码和工具来创建一个用户可以通过手势左右滑动来切换图片的应用。 首先,我们要了解ViewFlipper的基本用法。ViewFlipper继承...
总结,"ViewPager和ViewFlipper实现图片左右滑动"主要是利用这两个组件的特性,结合数据适配和手势处理,创建一个可滑动浏览的图片导航界面。在实际项目中,开发者应根据需求选择合适的组件,比如,如果需要实现多页...
ListView与ViewFlipper结合,可以创建出复杂的滑动页面,比如每个ListView项都是一个包含图片和文本的完整页面,而整个ListView则可以通过ViewFlipper来实现整体的左右滑动效果。 总结来说,这个主题涵盖了Android...
viewflipper左右滑动图片效果 。从服务器取出图片,实现图片缓存 。 我也是消耗过多的积分组合了代码,希望有帮助需要的, 注意: 跑起 需要服务器 将我的资源放在 tomcat里 , 修改 ...
总的来说,实现ViewFlipper的左右滑动效果,关键在于结合使用ViewFlipper和GestureDetector。通过监听用户的滑动手势,动态切换ViewFlipper中的子视图,并配合适当的动画,可以创建出流畅且直观的用户界面。这种技术...
本教程将详细介绍如何利用ViewFlipper实现图片的左右滑动、双击放大以及图片旋转功能。 1. **ViewFlipper基本使用** ViewFlipper继承自ViewGroup,可以包含多个子视图(例如ImageView)。默认情况下,ViewFlipper...
现在,用户不仅可以自动观看图片轮播,还可以通过左右滑动手动切换图片。 在实际项目中,你可能需要根据需求调整图片加载方式,比如使用`Glide`或`Picasso`库来异步加载网络图片。此外,你还可以添加图片指示器、...
在这个主题中,“安卓ViewFlipper及滑动改变图片”主要涉及如何利用ViewFlipper来创建一个能够通过用户滑动手势来切换显示图片的应用。下面我们将深入探讨ViewFlipper的工作原理、基本用法以及如何结合滑动手势来...
ViewPager可以承载多个Fragment,允许用户左右滑动切换页面,同时提供了内置的滑动手势处理和动画效果。此外,Fragments还有更好的生命周期管理和回退栈支持,使得代码更易于维护。 总结起来,虽然ViewFlipper是...
6. **图片加载库**:为了高效地加载和显示图片,开发者通常会用到像Glide、Picasso或 Fresco这样的第三方库。这些库能够优化内存使用,处理图片缩放,甚至支持网络图片的加载。 7. **性能优化**:考虑到可能存在的...
通过监听ViewFlipper的动画事件,我们可以实现左右滑动来切换图片,模拟图片浏览的效果。 实现这个功能的步骤如下: 1. **获取SD卡图片**:使用`Environment.getExternalStorageDirectory()`获取SD卡根目录,再...
在这个案例中,当用户在Gallery中选择一个新的壁纸时,ImageSwitcher会使用平滑的动画效果将当前显示的图片替换为用户选择的新图片,从而提供更佳的用户体验。ImageSwitcher内部默认使用`ViewFlipper`作为其切换动画...
ViewFlipper是Android SDK中的一个视图容器,用于在多个视图之间进行切换,它可以包含多个子视图,如ImageView、TextView等,并且可以轻松地实现动画效果,比如左右滑动来展示不同的视图。在Android开发中,...
在Android开发中,实现图片左右滑动效果是一个常见的需求,特别是在设计用户界面或者构建滑动浏览的图片库时。本文将详细介绍如何使用ViewFlipper组件和GestureDetector类来实现这一功能。 首先,我们要理解`...
在实际开发中,`ViewFlipper`的使用通常会结合其他视图组件,如`ImageView`展示图片,`TextView`显示文字信息,甚至可以嵌套其他的`ViewGroup`来构建复杂的布局。为了实现点击切换页面的需求,可以在`ViewFlipper`的...
在壁纸应用中,Gallery通常用于展示不同的壁纸图片,用户可以通过左右滑动来预览不同壁纸。Gallery的特点是可以实现无缝滚动,使得用户在滚动时感觉非常流畅。 2. **ImageSwitcher组件**: ImageSwitcher是另一个...
`ViewFlipper`是Android SDK提供的一种布局容器,它可以动态地添加、删除或切换子视图,尤其适合用来实现动画过渡效果,比如图片的左右滑动切换。下面我们将详细探讨如何使用`ViewFlipper`实现这个功能。 1. **引入...
它可以方便地实现动画效果,如左右滑动来切换视图,这在实现简单的滑屏切换效果时非常有用。不过,`ViewFlipper`通常用于展示同类型的视图,而不是不同`Activity`之间的切换。因此,如果你想要在不同的`Activity`...