- 浏览: 560896 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
myworkfirst:
这个mShowing是哪里的定义的? 有没有完整的例子
通过反射重新设置设置Dialog -
mchaoliu:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
fxiaozj:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
yun2223:
感谢一下,把gen 添加到source 以及检查一下 其他路 ...
gen already exists but is not a source folder -
flyingsir_zw:
解决方法: 1. 右键点击工程,选择 "Proper ...
gen already exists but is not a source folder
ViewSwitcher
译者署名: ivanlee
版本:Android 2.3 r1
结构
继承关系
public class ViewSwitcher extends ViewAnimator
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.ViewAnimator
android.widget.ViewSwitcher
已知直接子类 ImageSwitcher, TextSwitcher
类概述
在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。 (译者注:与ViewFlipper类相似,但该类不常用,常用其两个子类ImageSwitcher:转换图片时增加动画效果; TextSwitcher: 转换文字时增加动画效果; 其实例见apidemos中ImageSwitcher实例和TextSwitcher实例)
内部类 interface ViewSwitcher.ViewFactory
在一个ViewSwitcher里创建视图
构造函数
public ViewSwitcher (Context context)
构造一个新的空的视图转换器(ViewSwitcher)。
参数
context 应用环境(译者注:应用程序上下文)
public ViewSwitcher (Context context, AttributeSet attrs)
构造一个指定上下文、属性集合的空的视图转换器(ViewSwitcher)。
参数
context 应用环境(译者注:应用程序上下文)
attrs 属性集合
公共方法
public void addView(View child, int index, ViewGroup.LayoutParams params)
添加一个指定布局参数的子视图
参数
child 添加的子视图
index 添加的子视图的索引
params 子视图的布局参数
异常
IllegalStateException 如果切换器中已经包含了两个视图时。
public View getNextView ()
返回下一个要显示的视图
返回
视图切换之后将要显示出的下一个视图
public void reset ()
重置视图转换器(ViewSwitcher)来隐藏所有存在的视图,并使转换器达到一次动画都还没有播放的状态。
public void setFactory (ViewSwitcher.ViewFactory factory)
设置用来生成将在视图转换器中切换的两个视图的工厂。也可以调用两次 addView(android.view.View, int, android.view.ViewGroup.LayoutParams)来替代使用工厂的方法。
参数
factory 用来生成转换器内容的视图工厂
实现ListView的数据动态加载DEMO:
效果图:模拟点击LoadMoreItems按钮或得更多数据。
代码:
load_more_items.xml:
<?xml version="1.0" encoding="utf-8"?> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/btn_loadmorecontacts" android:text="Load More Items" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:minHeight="?android:attr/listPreferredItemHeight" android:textColor="#FFFFFF" android:background="@android:drawable/list_selector_background" android:clickable="true" android:onClick="onClick" />
progress_bar.xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:minHeight="?android:attr/listPreferredItemHeight"> <ProgressBar android:id="@+id/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" /> <TextView android:text="Loading…" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toRightOf="@+id/progressbar" android:layout_centerVertical="true" android:gravity="center" android:padding="10dip" android:textColor="#FFFFFF" /> </RelativeLayout>
ViewSwitcherExample.java:
/** * ViewSwitcher 字面意思理解为视图转换开关. * 在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。 * 一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。 */ public class ViewSwitcherExample extends ListActivity implements OnClickListener { static final String[] ITEMS = new String[]{ "List Item 1", "List Item 2", "List Item 3", "List Item 4", "List Item 5", "List Item 6", "List Item 7", "List Item 8", "List Item 9", "List Item 10"}; private static final String TAG = "ViewSwitcherExample"; private ViewSwitcher switcher; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // no window title requestWindowFeature(Window.FEATURE_NO_TITLE); //create the ViewSwitcher in the current context switcher = new ViewSwitcher(this); //footer Button: see XML1 View footer = View.inflate(this, R.layout.load_more_items, null); //progress View: see XML2 View processBar = View.inflate(this, R.layout.progress_bar, null); //add the views (first added will show first) switcher.addView(footer); switcher.addView(processBar); //add the ViewSwitcher to the footer getListView().addFooterView(switcher); //add items to the ListView setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ITEMS)); } @Override public void onClick(View v) { //first view is showing, show the second progress view switcher.showNext(); //显示下一个视图 //and start background work new getMoreItems().execute(); Log.i(TAG, Thread.currentThread().getName()); } /** Background Task To Get More Items**/ private class getMoreItems extends AsyncTask{ @Override protected Object doInBackground(Object... params) { //code to add more items try { Thread.sleep(3000); //only to demonstrate Log.i(TAG, Thread.currentThread().getName()); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Object result) { //返回上一个视图 switcher.showPrevious(); //update the ListView } } }
发表评论
-
Android中asset文件夹和raw文件夹区别【转】
2013-05-02 08:45 1239res/raw和assets的相同点 ... -
判断android系统的版本和package是否存在【转】
2013-04-27 14:46 27891.判断android系统的版本: publi ... -
startActivityForResult 不满足触发条件就返回的检测
2013-04-25 19:26 2053在android开发中,当不满足触发条件就按返 ... -
EditText 多行显示
2013-04-25 19:15 1765EditText 多行显示: <EditText a ... -
android 数据库导入导出
2013-04-25 15:30 3838方法1.在手机已经获得root权限的前提下(真机如果 ... -
Android使用尺寸资源 dimens
2013-04-25 13:42 6541有时候项目需要修改widget的控件的距离相关属性,只需要 ... -
checkbox 设定文字和选框之间的距离及自定义样式
2013-04-22 17:36 16069改变checkbox默认的文字与选框之间的距离两种方案,刚 ... -
解决 Eclipse 导入安卓项目 No projects are found to import
2013-04-21 10:50 6665在Eclipse里面导入已有的例子的时候,有 ... -
Android开发之Intent.Action
2013-04-19 11:41 0111 -
gen already exists but is not a source folder
2013-04-19 09:21 26557遇到android项目导入出现后重复空包等错误,往往是 ... -
[转]跟 Task 有关的 Intent对象中设置的Flag
2013-04-18 21:38 1264FLAG_ACTIVITY_BROUGHT_TO_FRON ... -
Activity 的Task与Intent FLAG
2013-04-18 21:22 4278Task是包含一系列Activity的堆栈, 遵循先进后出 ... -
[转] Tools之FindBugs
2013-04-14 17:27 9151) 安装 Help->SoftWare Update ... -
项目加入第三方NDK遇到的错误
2013-04-14 14:49 1036添加了jar包后,运行程序报 findLibrary ... -
Scrollview中动态添加widget不能滚动的为题
2013-04-14 09:48 4280在Scrollview中使用了动态添加控件,或者Scrol ... -
[转] finally块的问题(finally block does not complete normally)
2013-04-14 09:20 908当finall块中包含return语句时,Eclipse会给 ... -
Use a layout_width of 0dip instead of fill_parent for better performance
2013-04-13 23:45 3198安装了最新的ATD 18之后,新加的Lint Warnin ... -
instanceof
2013-01-29 14:19 956instanceof是Java的一个二元操作符,和==,&g ... -
android 对dp单位的理解
2013-01-08 19:55 2822什么是dp?dp就是dip,d ... -
handler简介
2012-12-15 02:38 0Handler在android里负责发送和处理消息。它的 ...
相关推荐
- 动态加载的时机:避免在主线程中进行耗时的布局加载操作,可以使用异步加载或者在初始化阶段就预先加载好布局。 - 缓存布局:对于重复使用的布局,可以考虑缓存已加载的`View`,避免频繁的解析XML。 总结,动态...
确保Adapter正确地更新数据,并通知ListView数据集已改变,这是保证滚动效果的基础。 9. **性能优化**:在处理自动滚动时,需要注意性能问题,避免不必要的计算和内存泄漏。合理使用ViewHolder模式,以及在滚动时...
在Android应用开发中,ListView是常用的控件之一,它用于展示大量的列表数据。...开发者可以通过分析和学习,进一步掌握Android UI动态效果的实现技巧,并将其应用于自己的毕业设计或移动应用项目中。
`ImageSwitcher`是Android提供的一个视图切换器,它继承自`ViewSwitcher`,主要用于在两个`View`之间进行切换,通常用于实现类似轮播图的效果。在这个demo中,`ImageSwitcher`被用来展示图片,并且支持左右滑动来...
- 对于复杂的ListView交互,编写单元测试以确保手势识别和数据加载的正确性是很重要的。 - 使用 Espresso 或者 Robolectric 进行UI自动化测试。 10. **性能优化**: - 使用`ListView.setChoiceMode()`可以启用...
这是通过ViewAnimator实现的,当数据集发生改变时,ListView会自动应用这些动画。然而,这些基本动画可能无法满足开发者对更复杂交互的需求。 二、自定义动画 1. **AnimationUtils.loadAnimation()** 要自定义...
总结来说,这个源码示例提供了如何使用Android的Gallery、ImageSwitcher和ViewFlipper组件创建一个简单的壁纸查看应用的实例,是学习Android UI组件和图片加载优化的一个良好起点。通过深入理解并实践这些组件,...
综上所述,`Imageswitcher` 和 `Gallery` 的同步实现涉及到数据绑定、事件监听、图片加载、自动播放和动画设置等多个环节。通过合理的组合和定制,可以创建出具有专业级用户体验的图片浏览组件。在实际开发中,还...
总之,通过学习和分析ViewFlowTest的源码,开发者不仅可以掌握ViewFlow的使用,还能对Android的视图管理、手势识别、动画实现等有更深入的理解。这将有助于提升Android应用的UI设计和性能优化能力,对毕业设计和代码...
- 插件化:实现动态加载功能,如热更新。 10. **Android Jetpack**: - Room:了解Room数据库库,作为SQLite的高级封装,简化数据库操作。 - LiveData和ViewModel:理解这两者在MVVM架构中的作用,如何实现数据...
通过设置适配器(Adapter),`Gallery`可以动态加载数据,并让用户通过左右滑动来浏览。在实现图片循环显示时,我们可以将图片资源或网络图片URL存储在数据集中,然后在适配器的`getView()`方法中加载图片。`Gallery...
9. **数据加载与刷新**: 聊天应用通常需要实时加载和刷新数据,这可以通过`SwipeRefreshLayout`实现下拉刷新,同时结合`RecyclerView`或`ListView`展示聊天记录,利用`Adapter`进行数据绑定。 10. **性能优化**:...
这个组件是AdapterView家族的一部分,比如ListView、GridView等,它允许开发者动态地添加、删除或切换子视图,同时提供了一个内置的动画机制来实现过渡效果。 在Android应用设计中,AdapterViewFlipper常用于创建...
10.6.3 使用ContentResolver操作ContentProvider中的数据 10.7 本章小结 第11章 网络通信 11.1 TCP协议 11.1.1 服务端的创建 11.1.2 客户端创建 11.2 UDP协议 11.2.1 服务端的创建 11.2.2 客户端创建 11.3 ...
6. **列表视图(ListView)**和网格视图(GridView):展示大量可滚动的数据项。 7. **滑动选择器(SeekBar)**:让用户调整数值。 8. **日期/时间选择器(DatePicker/TimePicker)**:方便用户选择日期或时间。 9. ...
在Android开发中,`View`是最基本的UI组件,所有可见的用户界面元素都是通过继承`View`类实现的。`View`类定义了控件的行为和外观,并且提供了绘制、布局、处理触摸事件等功能。本文档将详细介绍Android2.2版本中的`...