Android 圖像滑塊
Android圖像滑塊將一個完整的屏幕滑動到另一個屏幕。愛掏網(wǎng) - it200.com圖像滑塊由支持庫提供的 ViewPager 創(chuàng)建。愛掏網(wǎng) - it200.com要實現(xiàn)圖像滑塊,您需要繼承擴(kuò)展了PagerAdapter的ViewPager類。愛掏網(wǎng) - it200.com
圖像滑塊示例
讓我們看一個Android圖像滑塊的示例。愛掏網(wǎng) - it200.com
activity_main.xml
在activity_main.xml文件中,我們將ViewPager包裝在RelativeLayout中。愛掏網(wǎng) - it200.com
文件:activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.test.imageslider.MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/viewPage"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
Activity類
文件: MainActivity.java
package com.example.test.imageslider;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager mViewPager = (ViewPager) findViewById(R.id.viewPage);
ImageAdapter adapterView = new ImageAdapter(this);
mViewPager.setAdapter(adapterView);
}
}
圖像適配器類
現(xiàn)在創(chuàng)建一個繼承自 PagerAdapter 的圖像適配器類,用于 Android 圖像滑塊。愛掏網(wǎng) - it200.com
將一些圖像放在 drawable 文件夾中,這些圖像將用于滑動。愛掏網(wǎng) - it200.com
文件: ImageAdapter.java
package com.example.test.imageslider;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class ImageAdapter extends PagerAdapter{
Context mContext;
ImageAdapter(Context context) {
this.mContext = context;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
private int[] sliderImageId = new int[]{
R.drawable.image1, R.drawable.image2, R.drawable.image3,R.drawable.image4, R.drawable.image5,
};
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(sliderImageId[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
@Override
public int getCount() {
return sliderImageId.length;
}
}
我們需要覆蓋PagerAdapter類的以下方法。愛掏網(wǎng) - it200.com
- isViewFromObject(View, Object): 此方法檢查視圖是否與鍵關(guān)聯(lián),并由instantiateItem()返回。愛掏網(wǎng) - it200.com
- instantiateItem(ViewGroup, int): 此方法創(chuàng)建傳遞作為參數(shù)的頁面位置。愛掏網(wǎng) - it200.com
- destroyItem(ViewGroup, int, Object): 它從容器中刪除當(dāng)前位置的頁面。愛掏網(wǎng) - it200.com在此示例中,我們只是使用removeView()來移除對象。愛掏網(wǎng) - it200.com
- getCount(): 它返回ViewPager中可用視圖的數(shù)量。愛掏網(wǎng) - it200.com
輸出
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。