博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android AdapterViewFlipper
阅读量:2538 次
发布时间:2019-05-11

本文共 7730 字,大约阅读时间需要 25 分钟。

In this tutorial, we’ll be discussing and implementing the AdapterViewFlipper class in our Android Application.

在本教程中,我们将在Android应用程序中讨论和实现AdapterViewFlipper类。

Android AdapterViewFlipper (Android AdapterViewFlipper)

AdapterViewFlipper class is a subclass of the ViewAnimator class and is used to flip between 2 or more views such that only one view is displayed at a time. This is commonly used in slides.

AdapterViewFlipper类是ViewAnimator类的子类,用于在2个或更多视图之间切换,从而一次仅显示一个视图。 这通常在幻灯片中使用。

Difference between ViewFlipper and AdapterViewFlipper

ViewFlipper和AdapterViewFlipper之间的区别

is used to display all the slide views initially. Statically. That means the views won’t be recycled.

用于最初显示所有幻灯片视图。 静态地。 这意味着视图将不会被回收。

AdapterViewFlipper is used to display all the child views using the Adapter. Similar to a ListView/Spinner/RecyclerView. So there is space for recycling the views and also loading views dynamically.

AdapterViewFlipper用于使用适配器显示所有子视图。 类似于ListView / Spinner / RecyclerView。 因此,有空间回收视图并动态加载视图。

An AdapterViewFlipper is defined in the XML layout in the following manner:

通过以下方式在XML布局中定义AdapterViewFlipper:

Following are the important XML attributes used:

以下是使用的重要XML属性:

  • android:autoStart – To start the view flipping once the adapter is loaded.

    android:autoStart –加载适配器后开始翻转视图。
  • android:flipInterval – Used to set the time interval after which the next child view is presented. Set in milliseconds.

    android:flipInterval –用于设置显示下一个子视图的时间间隔。 以毫秒为单位设置。

Each of these has their Java counterpart methods as well.

每个方法也都有其Java对应方法。

Following are some of the other Java methods used on AdapterViewFlipper class:

以下是AdapterViewFlipper类上使用的其他一些Java方法:

  • isFlipping() – Returns a boolean to indicate whether the AdapterViewFlipper flipping is ongoing or not.

    isFlipping() –返回一个布尔值,以指示AdapterViewFlipper翻转是否正在进行。
  • showNext() – To manually go to the next view.

    showNext() –手动转到下一个视图。
  • showPrevious() – Goes to the previous view.

    showPrevious() –转到上一个视图。
  • startFlipping() – To begin flipping. This gets automatically called if autostart is true.

    startFlipping() –开始翻转。 如果autostart为true,则将自动调用此方法。
  • stopFlipping() – To stop flipping.

    stopFlipping() –停止翻转。
  • isAutoStart() – Returns true if startFlipping was automatically called when the child views where attached to the Adapter.

    isAutoStart() –如果在子级查看附加到适配器的位置时自动调用了startFlipping则返回true。

In the following section, we’ll be creating an android application using the above discussed AdapterViewFlipper concepts.

在以下部分中,我们将使用上面讨论的AdapterViewFlipper概念创建一个android应用程序。

项目结构 (Project Structure)

(Code)

The code for the activity_main.xml layout is given below:

下面给出了activity_main.xml布局的代码:

The code for the row_view_item.xml is given below:

row_view_item.xml的代码如下:

The code for the MainActivity.java class is given below:

MainActivity.java类的代码如下:

package com.journaldev.androidadapterviewflipper;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterViewFlipper;import android.widget.Button;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    AdapterViewFlipper adapterViewFlipper;    ArrayList
androidVersions = new ArrayList<>(); Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); populateData(); adapterViewFlipper = findViewById(R.id.adapterViewFlipper); button = findViewById(R.id.button); adapterViewFlipper.setAdapter(new AdapterViewFlipperAdapter(this, androidVersions)); adapterViewFlipper.setFlipInterval(500); adapterViewFlipper.startFlipping(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (adapterViewFlipper.isFlipping()) adapterViewFlipper.stopFlipping(); else adapterViewFlipper.startFlipping(); } }); } @Override protected void onResume() { super.onResume(); if (adapterViewFlipper != null && !adapterViewFlipper.isFlipping()) adapterViewFlipper.startFlipping(); } @Override protected void onPause() { super.onPause(); if (adapterViewFlipper != null && adapterViewFlipper.isFlipping()) adapterViewFlipper.stopFlipping(); } private void populateData() { androidVersions.add(new AndroidVersion(R.drawable.android_e, "Android Eclair")); androidVersions.add(new AndroidVersion(R.drawable.android_g, "Android Gingerbread")); androidVersions.add(new AndroidVersion(R.drawable.android_j, "Android Jellybean")); androidVersions.add(new AndroidVersion(R.drawable.android_k, "Android Kitkat")); androidVersions.add(new AndroidVersion(R.drawable.android_l, "Android Lollipop")); androidVersions.add(new AndroidVersion(R.drawable.android_m, "Android Marshmallow")); androidVersions.add(new AndroidVersion(R.drawable.android_n, "Android Nougat")); androidVersions.add(new AndroidVersion(R.drawable.android_o, "Android Oreo")); }}class AndroidVersion { int drawableInt; String versionName; AndroidVersion(int d, String v) { drawableInt = d; versionName = v; }}

We’ve defined a Model class AndroidVersion.

Data is populated in the Adapter class from an ArrayList of AndroidVersion.
In order to save memory, we’ll stop the flipping when the activity is in the background.

我们定义了一个Model类AndroidVersion。

数据从AndroidVersion的ArrayList填充到Adapter类中。
为了节省内存,当活动处于后台时,我们将停止翻转。

We can add animations when a view enters and exits the AdapterViewFlipper by:

当视图进入和退出AdapterViewFlipper时,我们可以通过以下方式添加动画:

adapterViewFlipper.setInAnimation() and adapterViewFlipper.setInAnimation()

adapterViewFlipper.setInAnimation()adapterViewFlipper.setInAnimation()

The code for the AdapterViewFlipperAdapter.java class is given below:

AdapterViewFlipperAdapter.java类的代码如下:

package com.journaldev.androidadapterviewflipper;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;public class AdapterViewFlipperAdapter extends BaseAdapter {    private ArrayList
androidVersions; private Context mContext; public AdapterViewFlipperAdapter(Context context, ArrayList
androidVersions) { this.mContext = context; this.androidVersions = androidVersions; } @Override public int getCount() { return androidVersions.size(); } @Override public Object getItem(int position) { return androidVersions.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext). inflate(R.layout.row_view_item, parent, false); } AndroidVersion version = androidVersions.get(position); TextView textView = convertView.findViewById(R.id.textView); ImageView imageView = convertView.findViewById(R.id.imageView); textView.setText(version.versionName); imageView.setImageResource(version.drawableInt); return convertView; }}

The output of the above application in action is given below:

上面应用程序的输出如下:

This brings an end to this tutorial. You can download the project from the link below:

本教程到此结束。 您可以从下面的链接下载项目:

翻译自:

转载地址:http://kamzd.baihongyu.com/

你可能感兴趣的文章
ARPA
查看>>
JSP开发模式
查看>>
我的Android进阶之旅------&gt;Android嵌入图像InsetDrawable的使用方法
查看>>
Detours信息泄漏漏洞
查看>>
win32使用拖放文件
查看>>
Android 动态显示和隐藏软键盘
查看>>
raid5什么意思?怎样做raid5?raid5 几块硬盘?
查看>>
【转】how can i build fast
查看>>
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>
JQuery 事件
查看>>
main(argc,argv[])
查看>>
在线教育工具—白板系统的迭代1——bug监控排查
查看>>