在我的应用中,我想动画一个图标,扩展到其大小的120%左右。问题是,当我这样做时,ImageView的内容被切断。反正有没有增长它,所以这不会发生?
调用动画:
Animation sgAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.highlight);
charm.startAnimation(sgAnimation);
动画本身:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:fillBefore="true"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true" >
<scale
android:duration="100"
android:pivotX="50%"
android:pivotY="50%"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="1.5"
android:toYScale="1.5" />
</set>
与imageview相关的布局部分:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/over_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
android:id="@+id/charms_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp" >
<ImageView
android:id="@+id/charm_phone"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:alpha=".75"
android:contentDescription="@string/account_image_description"
android:src="@drawable/ic_phone_white_24dp" />
<ImageView
android:id="@+id/charm_lock"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="@string/account_image_description"
android:src="@drawable/ic_qs_lock_screen_off" />
<ImageView
android:id="@+id/charm_camera"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:alpha=".75"
android:contentDescription="@string/account_image_description"
android:src="@drawable/ic_camera_white_24dp" />
注意:我已经尝试用wrap_content替换24dp,但是没有用
答案 0 :(得分:13)
我会尝试使用
android:clipChildren="false"
android:clipToPadding="false"
在imageView容器和imageview中
答案 1 :(得分:1)
所以我最终在imageview中添加了填充,并通过额外的填充增加了imageview的大小。这样,当它被动画化时,它会动画到填充空间并且不会被裁剪。
答案 2 :(得分:0)
您可以通过根据缩放动画提供ImageView的父布局高度来实现预期结果。
在您的情况下,您尝试为宽度和高度为24dp的ImageView设置动画。因此,ImageView需要一个36dp的空间才能正常动画。由于您将布局宽度设置为match_parent,因此您的图像不会从左侧和右侧切割,但高度的换行内容将无效。
考虑一张图片:
<RelativeLayout
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:layout_height="36dp">
<ImageView
android:id="@+id/image_view"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_margin="6dp"
android:layout_alignParentLeft="true"
android:src="@drawable/src_image"/>
<RelativeLayout/>