gpt4 book ai didi

java - 带标题的图片 Android Viewpager

转载 作者:行者123 更新时间:2023-11-30 09:09:33 24 4
gpt4 key购买 nike

我是 Android 编程的新手。我有一个包含图像的画廊,当我点击一个图像时,应该会出现一个带有全屏图像和标题的 ViewPager,我可以滑过整个画廊。我已遵循本教程 enter link description here唯一的区别是我的图像也存储在一个数组中,即标题。当我运行该应用程序时,画廊正在显示,但 Viewpager 是空的并且没有滑动。我没有错误,我不知道应该出什么问题。提前致谢:)

全屏图像适配器.java

package com.example.sherlockholmes.images;

import android.app.Activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.example.sherlockholmes.R;

public class FullScreenImageAdapter extends PagerAdapter {

private Activity context;
private LayoutInflater inflater;
private int _position;
private Integer[] mThumbIds;
private String[] description;

public FullScreenImageAdapter(Activity context,Integer[] mThumbIds,String[] description){
this.context=context;
this.mThumbIds = mThumbIds;
this.description = description;
}


@Override
public int getCount() {
return 0;
}


@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {


inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container,
false);

ImageView imageView = (ImageView) viewLayout.findViewById(R.id.full_image);
TextView textview = (TextView) viewLayout.findViewById(R.id.item_text);
Button btnClose = (Button) viewLayout.findViewById(R.id.btnClose);
imageView.setImageResource(mThumbIds[_position]);
textview.setText(description[_position]);

btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
context.finish();
}
});

((ViewPager) container).addView(viewLayout,0);

return viewLayout;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);

}

}

全屏 View Activity .java

package com.example.sherlockholmes.images;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;

import com.example.sherlockholmes.R;

public class FullScreenViewActivity extends Activity{


private FullScreenImageAdapter adapter;
private ViewPager viewPager;

private Integer[] mThumbIds = {
R.drawable.acd1, R.drawable.acd1,
R.drawable.acd1, R.drawable.acd1,
R.drawable.acd1, R.drawable.acd1,
R.drawable.acd1, R.drawable.acd1,
};

private String[] description={
"apple","pinaple","rose","strawberry",
"orange","lemon","potato","banana"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen_view);

viewPager = (ViewPager) findViewById(R.id.pager);


Intent i = getIntent();
int position = i.getIntExtra("position", 0);

adapter = new FullScreenImageAdapter(FullScreenViewActivity.this,mThumbIds,description);

viewPager.setAdapter(adapter);

// displaying selected image first
viewPager.setCurrentItem(position);
}
}

最佳答案

试试这个

 @Override
public int getCount() {
return mThumbIds.length;
}

代替

 @Override
public int getCount() {
return 0;
}

在你的FullScreenImageAdapter

然后改变这个

 @Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);

}

 @Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}

还要改变这个

@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}

更新:你也需要改变这个

  imageView.setImageResource(mThumbIds[_position]);
textview.setText(description[_position]);

  imageView.setImageResource(mThumbIds[position]);
textview.setText(description[position]);

在您的 FullScreenImageAdapter 中。这是因为您还没有初始化 _position,这就是为什么 view pager 总是从位置 0 的数组中获取图像和标题。

关于java - 带标题的图片 Android Viewpager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com