Android界面编程之ViewSwitcher
来源:互联网 发布:数据库发展方向 编辑:程序博客网 时间:2024/05/29 16:55
ViewSwitcher:
ViewSwitcher可以用factory提供视图,也可以自己添加,最多只能有两个子视图,且任何时候只能显示其中一个。
如此,可以猜测到该控件的工作过程:
(1)为ViewSwitcher指定factory对象
(2)为ViewSwitcher的视图提供布局
(3)让ViewSwitcher翻页(按钮或者触屏滑动)
示例:实现图片切换
布局
<ViewSwitcher android:id="@+id/viewSwitcher1" android:layout_width="match_parent" android:layout_height="400dp" tools:layout_editor_absoluteY="8dp" tools:layout_editor_absoluteX="8dp" app:layout_constraintLeft_toLeftOf="parent"/> <Button android:id="@+id/butten_prev" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一页" android:onClick="prev" app:layout_constraintTop_toBottomOf="@+id/viewSwitcher1"/> <Button android:id="@+id/butten_next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一页" android:onClick="next" app:layout_constraintTop_toBottomOf="@id/viewSwitcher1" app:layout_constraintLeft_toRightOf="@id/butten_prev"/>
MainActivity:
public class MainActivity extends AppCompatActivity { private ViewSwitcher viewSwitcher; private int[] images = new int[]{R.drawable.img1,R.drawable.img2, R.drawable.img3,R.drawable.img4,R.drawable.img5}; private int index = 0; private LayoutInflater inflater; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewSwitcher=(ViewSwitcher)findViewById(R.id.viewSwitcher1); inflater = LayoutInflater.from(this); viewSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { ImageView imageView = new ImageView(getApplicationContext()); return imageView; } }); next(null); } public void prev(View view){ viewSwitcher.setInAnimation(this,R.anim.slide_in_right); viewSwitcher.setOutAnimation(this,R.anim.slide_out_left); index--; if (index<0) index=images.length-1; ImageView imageView = (ImageView)viewSwitcher.getNextView(); imageView.setImageResource(images[index]); viewSwitcher.showPrevious(); } public void next(View view){ viewSwitcher.setInAnimation(this, android.R.anim.slide_in_left); viewSwitcher.setOutAnimation(this,android.R.anim.slide_out_right); index++; if (index>images.length-1) index=0; ImageView imageView = (ImageView)viewSwitcher.getNextView(); imageView.setImageResource(imagext(); }}
当然,也可以自己定义动画:
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="600"/><alpha android:fromAlpha="1" android:toAlpha="1" android:duration="600"/>
阅读全文
0 0
- Android界面编程之ViewSwitcher
- ViewAnimator之ViewSwitcher的简单功能和用法(仿Android系统的Launcher界面)
- Android ViewSwitcher
- android控件之ViewSwitcher实现图片切换
- android浅学之界面编程
- Android界面编程之BaseAdapter
- Android界面编程之AdapterViewFlipper
- Android界面编程之Tabhost
- ViewSwitcher仿安卓系统Launcher界面
- android ViewSwitcher详解
- android ViewSwitcher详解 .
- android ViewSwitcher详解
- Android ViewSwitcher组件
- Android ViewSwitcher 简单介绍
- Android ViewSwitcher、TextSwitcher、ImageSwitcher
- Android ViewSwitcher类
- ViewSwitcher
- ViewSwitcher
- poj2892(treap)
- IT行业风投
- 2017-12-21 ubuntu first day
- python爬虫爬取goubanjia的代理ip
- 机器学习必知的15大框架
- Android界面编程之ViewSwitcher
- sscanf sprintf stringstream
- lucene&solr从入门到精通-----创建索引,写到索引库
- PAT——数字分类
- java基础学习日志--异常案例
- Java多叉树的创建,遍历,节点插入,删除,修改及节点路径获取
- C语言中 || 和 &&
- MapReduce的工作机制
- Prim输出无向图中所有的最小生成树