문제

이것은 나의 활동의 일부입니다 :

private ImageView mImageView;
private int resource;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  resource = getIntent().getIntExtra("res", -1);

  Matrix initMatrix = new Matrix();

  mImageView = new ImageView(getApplicationContext());
  mImageView.setScaleType( ImageView.ScaleType.MATRIX );
  mImageView.setImageMatrix( initMatrix );
  mImageView.setBackgroundColor(0);
  mImageView.setImageResource(resource);
}
.

MATRIX를 사용하여 SCALE 유형으로 MATRIX를 사용하여 이미지를 표시하려고합니다 (나중에 멀티 터치를 추가하고 싶습니다).그러나 사용자가 상호 작용을 시작하기 전에 이미지를 중심으로하고 ImageView 내부에 맞게 원합니다. 나는 이미 해결하는 방법에 관한 답변을 이미 발견했지만 나에게 한 가지 문제가있다. 매트릭스를 사용하여 이미지를 중심으로하는 이미지를 만들려면 폭과 높이를 알아야합니다.당신이 가진 모든 것이 int resource 인 경우 이미지 크기를 얻는 방법이 있습니까?

도움이 되었습니까?

해결책

bitmapfactory.decoderesource 자원의 비트 맵 객체를 얻고 비트 맵에서 getHeight getWidth

또한 재활용 를 잊지 마십시오.비트 맵

편집 :

이렇게하면 null 비트 맵을 출력으로 가져 오지만 비트 맵의 비트 맵과 높이와 함께 설정됩니다.따라서이 경우 비트 맵 을 재활용 할 필요가 없습니다.

BitmapFactory.Options dimensions = new BitmapFactory.Options(); 
dimensions.inJustDecodeBounds = true;
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap, dimensions);
int height = dimensions.outHeight;
int width =  dimensions.outWidth;
.

다른 팁

dmon의 코멘트를 읽지 않은 사람을 위해.이렇게하는 코드는 다음과 같습니다.

final Options opt = new BitmapFactory.Options();
opt.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.your_photo, opt);

opt.outHeight; // height of resource
opt.outWidth; // width of resource
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top