2014-01-10 157 views
0

對於原型中的佈局,我需要一個按鈕,將ImageView的一個部分(一個內部矩形)與放大的圖像進行疊加,以保留寬高比。 有沒有一些方法來覆蓋圖像視圖上的按鈕與定義的邊距,然後擴大這種組合保留邊距?我試圖把兩者都放在一個額外的相關佈局中,但子元素沒有在相關佈局中進行縮放(比如在縮放父UIView時可能會縮放2個UIViews)。我也嘗試使用adjustViewBounds將imageview縮小到放大的圖像,但是這也不起作用。匹配縮放圖像視圖按鈕

這是當前佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="0dp" 
    tools:context=".MainActivity" > 
     <ImageView 
      android:id="@+id/placeholderImage" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@drawable/placeholder" 
      android:padding="0dp" 
      android:adjustViewBounds="true"/> 
     <Button 
      android:id="@+id/btn" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@android:color/darker_gray" 
      android:onClick="show"/> 
</RelativeLayout> 
+0

您是否嘗試在版面中添加重量? layout_weight = 1等 – Saqib

回答

0

我結束了這個編程方式使用這裏的一些答案做: Find the position of a bitmap...

總結方法:

  • 中的onCreate使用globalLayoutListener
  • 在onGlobalLayout回調中,獲取比例使用getImageMatrix繪製drawable,然後getValues。由於我保持寬高比,MSCALE_X或MSCALE_Y都可以工作。
  • 得到drawable的邊界,由於目標密度的預縮放,這將與資源png的維度有所不同。由於資源png的大小已知,因此計算此「預分頻」並乘以矩陣比例得到totalScale
  • 使用LayoutParams將totalScale應用於按鈕大小和偏移量。