首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android:点击放大图片

android:点击放大图片
EN

Stack Overflow用户
提问于 2011-11-01 17:24:39
回答 1查看 3.5K关注 0票数 0

我正在制作一个安卓应用程序,我需要在点击放大图像大小。我从服务器下载这些图像,然后在活动中以编程方式添加这些图像,从而以编程方式设置图像的id。现在我的问题是,当我将imageid发送到另一个活动以放大它时,它只接受最后一个图像的id。

因此给出了以下异常。

代码语言:javascript
复制
Unable to start activity ComponentInfo{com.emx.OnDaMove/com.emx.OnDaMove.FullImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x5

我使用以下代码制作图像并将它们添加到表行中。

代码语言:javascript
复制
             imageUrl = "http://ondamove.it/English/images/users/";
            imageUrl = imageUrl + listObject.get(j).getImage();

            image = new ImageView(this);
            image.setPadding(20, 10, 0, 0);
            image.setId(j+1);
            imageId=image.getId();
                            tr.addView(image);

clickliastener的方法如下:

代码语言:javascript
复制
     private OnClickListener clickImageListener = new OnClickListener() {
    public void onClick(View v) {
        Intent fullScreenIntent = new Intent(v.getContext(),FullImageActivity.class);
        fullScreenIntent.putExtra(ProfilePageNormalUser.class.getName(),imageId) ;
        ProfilePageNormalUser.this.startActivity(fullScreenIntent); 

    }
};

而要放大图像的活动是:

代码语言:javascript
复制
        ImageView myimage = (ImageView) findViewById(R.id.imageviewEnlarged);

    Intent intent = getIntent();


     int imageId = (Integer) intent.getExtras().get(ProfilePageNormalUser.class.getName());
      System.out.println("********"+imageId +"**********");
      InputStream is = this.getResources().openRawResource(imageId);
      Bitmap originalBitmap = BitmapFactory.decodeStream(is);
      Matrix imageMatrix = new Matrix();
      imageMatrix.postRotate(90);
      Bitmap scaledBitmap = Bitmap.createBitmap(originalBitmap, myimage.getWidth(), myimage.getHeight(), originalBitmap.getWidth(), originalBitmap.getHeight(), imageMatrix, false);
      myimage.setImageBitmap(scaledBitmap);
      myimage.setScaleType(ScaleType.FIT_XY);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-01 17:37:00

它肯定会给出最后一个Id,因为imageId的值在每次循环中都会更新。这将在循环期间存储最后一个已知值。

你应该使用数组而不是简单的变量。

或者,您可以在onClick方法中使用v.getId。(更简单的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7964546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档