2012-04-14 2 views
9

卵(ImageButton)をカートン(ImageView)の外に移動するために翻訳アニメーションを使用していますが、一貫してクリッピングしていますので、すべてのソリューションを実装するには、まだクリップされています。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

[OK]を、私は同様の問題を解決する約1時間を無駄にしました。

いくつかの変換などを使用してオブジェクトを「手動で」アニメーション化し、postInvalidateDelayed()などを呼び出して更新を強制するとします。

トップビューで呼び出す必要があるという問題がありました。そうしないと、キャンバスが更新されるアイテムに自動的にクリップされるためです。したがって、トップビューでinvalidate()(または同様のもの)を呼び出すと、クリップがあまり大きくならないキャンバスで再描画されるはずです。

あなたのケースでは、2つの "opencarton" idsが定義されていることに気がつきました。おそらく、上位のRelativeLayoutをリフレッシュする必要があります。

+4

これを指摘してくれてありがとう、私の時間を保存しました! –

+1

ありがとう、あなたのコメントは私に多くの時間を節約しました。 – Crash

関連する問題