好的,所以我在ImageView中使用了一個圖像來填充屏幕。我用scaletype =「centerCrop」保持縱橫比,如下所示:Android:如何找到背景圖像的縮放比例
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/full_bg" />
在代碼中,我怎麼去尋找縮放比例,或比例因子,起因於原始圖像的縮放圖像?我需要知道,所以我可以將這個相同的比例應用到位於戰略上位於背景頂部的按鈕上。這是我試圖讓縮放比例:
ImageView view = (ImageView) findViewById(R.id.imageView1);
Log.i("Test", "x scale = " + Float.toString(view.getScaleX()));
這將返回一個1.0(無標度),這是不是我要找的。我也試圖讓縮放位圖,而不是ImageView的,這也給了我原來的圖像尺寸(540px)的尺寸:
ImageView view = (ImageView) findViewById(R.id.imageView1);
Drawable drawing = view.getDrawable();
Bitmap bitmap = ((BitmapDrawable)drawing).getBitmap();
Log.i("Test", "width = " + Integer.toString(bitmap.getWidth()));
難道我接近這一切都錯了嗎?我找不到任何東西來幫助我解決這個問題。任何幫助將非常感激!
馬克,你是否在onCreate或其他地方獲取比例和位圖寬度?我問,因爲在onCreate組件實際上還沒有畫到屏幕上。所以要求getWidth可能會在縮放發生之前返回默認大小。嘗試覆蓋onWindowFocusChanged,看看有什麼值(http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged(boolean)) – spartygw
爲什麼你不採取圖像視圖的高度和寬度? –
@spartygw我在onCreate中獲得了縮放和位圖寬度,所以我試着按照你的建議重寫onWindowFocusChanged,但仍然得到了相同的結果。 –