2012-04-14 37 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

相关问题