0
클릭하면 이미지 크기가 커질 수있는 Android 앱을 만들고 있습니다. 이러한 이미지를 서버에서 다운로드 한 다음 이러한 이미지를 프로그래밍 방식으로 활동에 추가하므로 이미지의 ID를 프로그래밍 방식으로 설정해야합니다. 이제 내 문제는 내가 imageid를 보내면 다른 활동이 그것을 확대하기 때문에 마지막 이미지의 ID 만 가져옵니다.android : 클릭시 이미지 확대
이며, 따라서 다음 예외를 제공한다.
Unable to start activity ComponentInfo{com.emx.OnDaMove/com.emx.OnDaMove.FullImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x5
이미지를 만들고 테이블 행에 추가하는 데 다음 코드를 사용하고 있습니다.
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에 대한 다음과 같은 방법
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);
}
};
및 이미지 확대 작성할 수있는 활동은 다음과 같습니다
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);
심지어 onclick 메소드에서 id를 얻는 것은 나에게 동일한 예외를 준다. – Aditya1510
onClick에 ID를 기록하고 반환되는 것을 볼 수 있는가? ID가 아닌 경우 오류가 InputStream에 있어야합니다. = this.getResources(). openRawResource (imageId); – Hardik4560
예. 가능하지만 텍스트를주고받는 서버가 필요합니다. 또한 수신자도 앱을 준비해야합니다. – Hardik4560