좋아요, 그래서 ImageView에서 화면을 채우기 위해 사용하고있는 이미지가 있습니다.Android : 배경 이미지의 비율을 찾는 방법
코드에서<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/full_bg" />
, 나는 스케일 비율, 또는 스케일 팩터를 찾아 가야합니까 방법, 즉 원래 이미지의 결과 : 여기에서 볼 수 있듯이 나는 scaletype = "centerCrop"를 사용하여 가로 세로 비율을 유지하고있다 크기 조정 된 이미지? 전략적으로 배경 위에 배치 된 버튼에 동일한 비율을 적용 할 수 있도록 알 필요가 있습니다. 이것은 내가 스케일 비율을 얻기 위해 노력했다 무엇 :
ImageView view = (ImageView) findViewById(R.id.imageView1);
Log.i("Test", "x scale = " + Float.toString(view.getScaleX()));
이 반환 내가 무엇을 찾고하지 않은 (스케일 없음) 1.0.
ImageView view = (ImageView) findViewById(R.id.imageView1);
Drawable drawing = view.getDrawable();
Bitmap bitmap = ((BitmapDrawable)drawing).getBitmap();
Log.i("Test", "width = " + Integer.toString(bitmap.getWidth()));
내가이 모든 잘못에 접근하는 건가요 : 나는 또한 또한 나에게 원래 이미지 크기 (540px)를 제공하는 대신 이미지 뷰의 스케일 비트 맵의 크기를 점점 시도? 나는 이것을 파악하는 데 도움이되는 것을 찾을 수 없다. 어떤 도움을 많이 주시면 감사하겠습니다! 내가 화면의 크기에 따라 이미지 크기를 변경하려면이있어, 그러나 이것은 쉽게를
int width = bitmap.getWidth();
로
int width = metrics.widthPixels;
을 변경하여 변경 또는 무엇이든 할 수있다 :
마크, onCreate 또는 다른 곳에 크기 및 비트 맵 너비가 표시됩니까? onCreate에서 컴포넌트가 실제로 스크린에 그려지지 않았기 때문에 묻습니다. 따라서 getWidth를 요구하면 스케일링이 발생하기 전에 기본 크기를 반환 할 수 있습니다. onWindowFocusChanged를 재정의하고 값이 무엇인지 확인하십시오. (http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged(boolean)) – spartygw
왜 이미지 뷰의 높이와 너비를 사용하지 않습니까? –
@spartygw onCreate에서 스케일 및 비트 맵 너비를 얻었으므로 제안한대로 onWindowFocusChanged를 재정의하려했지만 여전히 동일한 결과를 얻었습니다. –