我有一个View
,它的背景是Shape
观点:
<View
android:layout_width="wrap_content"
android:layout_height="74dp"
android:id="@+id/background_parent"
android:background="@drawable/item_background">
</View>
shape
(项目背景):
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:bottomLeftRadius="@dimen/corner_radius_in_rects"
android:bottomRightRadius="@dimen/corner_radius_in_rects"
android:topLeftRadius="@dimen/corner_radius_in_rects"
android:topRightRadius="@dimen/corner_radius_in_rects" />
<solid android:color="#f8f4fa" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
我正在尝试使用ObjectAnimtor
缩放视图,但它会拉伸视图和角落。我希望它可以缩放并保持原始形状属性(角半径)。
我试过了:
scaleBackgroundView.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
background.setBackground(getResources().getDrawable(R.drawable.item_background));
}
});
和
scaleBackgroundView.addListener(new Animator.AnimatorListener() {
...
@Override
public void onAnimationEnd(Animator animator) {
background.setBackground(getDrawable(R.drawable.item_background));
}
没有成功。有人有想法吗?
我想要圆角
答案 0 :(得分:0)
好的,所以我找到了几个解决方案(更像是解决方法)。 第一个是创建自定义视图并指定自己的缩放动画,以仅增加角落之间的间隙,而不是像以前一样拉伸。第二个解决方案(我使用的解决方案)是将矩形拆分为三个矩形,上部中间和底部,并指定中间的一个作为上部和底部之间的填充物。然后我将缩放动画设置为中间,将平移动画设置为底部。不是最明智的想法,但工作正常。