2012-04-14 115 views
9

我正在使用翻譯動畫來移動紙箱(ImageView)之外的一個雞蛋(ImageButton),但它一直在裁剪,所以我查看了所有的stackoverflow以找到解決方案,但嘗試爲了實施所有的解決方案,它仍然被剪裁。clipChilren設置爲false仍然剪裁

任何人都可以提供一些線索到爲什麼我的還是剪裁,這裏是XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:gravity="top" 
    android:clipChildren="false" 
    android:clipToPadding="false" 
    android:layout_height="match_parent"> 
<ImageButton 
    android:id="@+id/imageButton1" 
    android:background="@drawable/transparentblackbackground" 
    android:layout_below="@+id/relativeLayout1" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:clipChildren="false" android:clipToPadding="false" > 
</ImageButton> 

<!-- Total Carton for Animation --> 
<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="440dp" 
    android:id="@+id/opencarton" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:clipChildren="false" 
    android:clipToPadding="false" > 



    <!-- The carton that holds the eggs --> 
    <RelativeLayout 
     android:orientation="vertical" 
     android:layout_width="260dp" 
     android:id="@+id/opencarton" 
     android:layout_height="512dp" 
     android:layout_centerInParent="true" 
     android:clipChildren="false" 
     android:clipToPadding="false"> 

     <ImageButton 
      android:id="@+id/blackbgnd" 
      android:background="@drawable/clearbackground" 
      android:layout_height="600dp" 
      android:layout_width="400dp" 
      android:clipChildren="false" 
      android:clipToPadding="false" 
      android:gravity="center"> 
     </ImageButton> 

     <!-- Top of Carton image --> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/topcomponent" 
      android:src="@drawable/topofcarton" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentRight="true" 
      android:clipChildren="false" 
      android:clipToPadding="false"> 
     </ImageView> 

     <!-- First Row Of eggs goes here in future -->  
     <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg1" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginTop="3dp"></ImageButton> 
     <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg2" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="90dp" android:layout_marginTop="3dp"></ImageButton> 
     <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg3" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="170dp" android:layout_marginTop="3dp"></ImageButton> 

     ................ 

</RelativeLayout> 
</RelativeLayout> 
</RelativeLayout> 

回答

10

好吧,我浪費了約一小時解決類似的問題。

我想你是使用某些轉換動畫對象「手動」或調用postInvalidateDelayed()或類似的強制刷新。

問題是(對我來說)您需要在頂視圖上調用它,否則畫布會自動剪裁到您刷新的項目。因此,在頂部視圖上調用invalidate()(或類似)應該會導致畫布不被剪裁得太多。

在你的情況,我注意到你有兩個「opencarton」id定義,你應該可能刷新頂部或最高的RelativeLayout。

+4

感謝您指出了這一點,節省了我的時間! – 2014-03-12 16:50:52

+1

非常感謝,您的評論爲我節省了很多時間。 – Crash 2016-02-12 14:20:36

相關問題