android java切换图片_android仿微信朋友圈查看图片(多图切换)

本文介绍了一个基于Android平台的图片查看器应用实现方案。该应用利用ViewPager组件展示从URL列表加载的图片,并支持用户通过滑动切换图片。文章详细介绍了如何使用FragmentStatePagerAdapter管理图片碎片,以及如何保存和恢复当前查看的图片位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【实例简介】

【实例截图】

d65f196e1d4b44f00322cc12fece607b.png

c71fcbcb13f98a77246197871ec10704.png

【核心代码】

package com.example.imagedemo;

import java.util.ArrayList;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentActivity;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentStatePagerAdapter;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.widget.TextView;

/**

* 图片查看器

*/

public class ImagePagerActivity extends FragmentActivity {

private static final String STATE_POSITION = "STATE_POSITION";

public static final String EXTRA_IMAGE_INDEX = "image_index";

public static final String EXTRA_IMAGE_URLS = "image_urls";

private HackyViewPager mPager;

private int pagerPosition;

private TextView indicator;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.image_detail_pager);

pagerPosition = getIntent().getIntExtra(EXTRA_IMAGE_INDEX, 0);

ArrayList urls = getIntent().getStringArrayListExtra(EXTRA_IMAGE_URLS);

mPager = (HackyViewPager) findViewById(R.id.pager);

ImagePagerAdapter mAdapter = new ImagePagerAdapter(getSupportFragmentManager(), urls);

mPager.setAdapter(mAdapter);

indicator = (TextView) findViewById(R.id.indicator);

CharSequence text = getString(R.string.viewpager_indicator, 1, mPager.getAdapter().getCount());

indicator.setText(text);

// 更新下标

mPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override

public void onPageScrollStateChanged(int arg0) {

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override

public void onPageSelected(int arg0) {

CharSequence text = getString(R.string.viewpager_indicator, arg0 1, mPager.getAdapter().getCount());

indicator.setText(text);

}

});

if (savedInstanceState != null) {

pagerPosition = savedInstanceState.getInt(STATE_POSITION);

}

mPager.setCurrentItem(pagerPosition);

}

@Override

public void onSaveInstanceState(Bundle outState) {

outState.putInt(STATE_POSITION, mPager.getCurrentItem());

}

private class ImagePagerAdapter extends FragmentStatePagerAdapter {

public ArrayList fileList;

public ImagePagerAdapter(FragmentManager fm, ArrayList fileList) {

super(fm);

this.fileList = fileList;

}

@Override

public int getCount() {

return fileList == null ? 0 : fileList.size();

}

@Override

public Fragment getItem(int position) {

String url = fileList.get(position);

return ImageDetailFragment.newInstance(url);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值