当前位置: 首页 > 面试题库 >

图像浏览器中每个图像的不同文本

包建义
2023-03-14
问题内容

我用viewpager类来显示图像集,而不是画廊类作为其弃用,定制它通过使用下面的代码来显示文本,问题是显示所有图像相同的文字,什么IM试图得到的是:
不同的文本每个 解释它的 图像 ,假设我们有5张图像,它必须有5个不同的文本,每个文本都描述其图像。

任何建议将不胜感激,谢谢

代码:

ImagePager

   public class ImagePager extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImagePagerAdapter adapter = new ImagePagerAdapter(this, imageArra);
    ViewPager myPager = (ViewPager) findViewById(R.id.myimagepager);
    myPager.setAdapter(adapter);
    myPager.setCurrentItem(0);}

private int imageArra[] = { R.drawable.a, R.drawable.b, R.drawable.c,
                              R.drawable.d, R.drawable.e};        }

ImagePagerAdapter

   public class ImagePagerAdapter extends PagerAdapter {

Activity activity;
int imageArray[];

public ImagePagerAdapter(Activity act, int[] imgArra) {
    imageArray = imgArra;
    activity = act;}

public int getCount() {
    return imageArray.length;}

public Object instantiateItem(View collection, int position) {
    LayoutInflater inflater = (LayoutInflater)collection.getContext
                 ().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.custom_pager, null);

    ImageView im=(ImageView) layout.findViewById(R.id.myimage);             
    im.setImageResource(imageArray[position]);

    TextView txt=(TextView) layout.findViewById(R.id.image_text);
    ((ViewPager) collection).addView(layout, 0);
       return layout;   }

@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
    ((ViewPager) arg0).removeView((View) arg2);
            }

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
    return arg0 == ((View) arg1);
                      }

@Override
public Parcelable saveState() {
    return null;
              }   }

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical">
 <android.support.v4.view.ViewPager 
   android:id="@+id/myimagepager" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" /> 
</LinearLayout>

custom_pager.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:orientation="vertical" 
   android:background="#FFDAB9" 
   android:gravity="center_horizontal">
 <ImageView android:id="@+id/myimage" 
   android:layout_width="match_parent" 
   android:layout_height="0dp" 
   android:layout_margin="5dp" 
   android:layout_weight="2" /> 
 <TextView android:id="@+id/image_text" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:textColor="#B22222" 
    android:layout_weight="1" 
    android:text="text to image" />

 </LinearLayout>

问题答案:

您可以将与每个图像相对应的字符串数组传递到适配器中。

在活动中,声明带有图像列表的字符串数组。

private int imageArra[] = { R.drawable.a, R.drawable.b, R.drawable.c,
                              R.drawable.d, R.drawable.e};

private String[] stringArray = new String[] { "Image a", "Image b","Image c","Image d","Image e"};

然后在html" target="_blank">实例化适配器时。

ImagePagerAdapter adapter = new ImagePagerAdapter(this, imageArra, stringArray );

在您的适配器中:

int imageArray[];
String[] stringArray;
public ImagePagerAdapter(Activity act, int[] imgArra, String[] stringArra) {
    imageArray = imgArra;
    activity = act;
    stringArray = stringArra;
}

然后从数组中分配文本值

TextView txt=(TextView) layout.findViewById(R.id.image_text);
txt.setText(stringArray[position]);


 类似资料:
  • 我需要一张图片来填充分区。根据这个答案,工作几乎完成了。当图像略大于其所包含的div时,就会出现问题。图像以100%的比例显示,这在我的情况下并不理想。 在Firefox中,这个问题可以通过使用以下CSS来解决: 在其他浏览器(使用Chrome和Edge测试)中,此解决方案不起作用,最终结果与以前相同。 有没有办法在其他浏览器上实现与Firefox相同的结果? 这是一个摆弄模型布局的摆弄,展示了这

  • 浏览图像 可从已登录至频道的网页接收数据,并播放图像。 使用操作接口 播放幻灯片秀

  • 浏览图像 选择相片时,会显示以下的图标。 摄影机 连接PSP™专用摄影机(选购品)后,可拍摄静止图像或影像。 Memory Stick™ 可浏览保存于Memory Stick™的图像。 主机内存 可浏览保存于主机内存的图像。   相机图像 可浏览支持Memory Stick™之数码(数字)相机所拍摄的图像。 (文件夹) 仅于存在使用计算机新建之文件夹时显示。 (图像档案) 可浏览保存于Memory

  • 问题内容: 我正在网上浏览,看到了以前从未见过的东西。在此网站上:http : //blogof.francescomugnai.com/2009/04/mega-roundup-of-geektool-scripts- inspiration-gallery/ 当您向下浏览页面时,仅当图像位于浏览器的可见部分时才加载图像。我以前从未见过这种情况,想知道是否还有其他人,以及究竟该怎么做。 我猜这是

  • 问题内容: 背景 我正在为两个公益网站编写和使用一个非常简单的基于CGI的(Perl)内容管理工具。它为网站管理员提供事件的HTML表单,这些表单将填写字段(日期,位置,标题,描述,链接等)并保存。在该表格上,我允许管理员上传与事件相关的图像。在显示表单的HTML页面上,我还显示了上传图片的预览(HTML img标签)。 问题 当管理员想要更改图片时,会发生此问题。他只需要点击“浏览”按钮,选择一

  • 我使用数组/循环从一个名为gallery(Wordpress)的自定义字段获取图像。检索到的图像未调整大小,这意味着它们的最大宽度为150px,最大高度为150px。现在我想知道如何自动让这些图像适应浏览器的大小。Chrome做得很好,但IE和FF做不到。当我设置img{width:100%;}调整大小是可行的,但是图像本身的大小是错误的,你可以想象得到。 是否有其他可能让图像自动调整到浏览器大小