其他分享
首页 > 其他分享> > android-如何旋转可绘制而不是imageView本身?

android-如何旋转可绘制而不是imageView本身?

作者:互联网

我有一个带有可绘制内部图像的视图.此可绘制对象是一个类似于正在进行的对话框中的环:

loading_ring:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadiusRatio="3"
    android:thicknessRatio="8"
    android:useLevel="false">
    <size
        android:width="20dip"
        android:height="20dip"/>

    <gradient
        android:type="sweep"
        android:useLevel="false"
        android:startColor="#4c737373"
        android:centerColor="#4c737373"
        android:centerY="0.50"
        android:endColor="#ffffffff"/>
</shape>

为了旋转此环,我创建了一个旋转动画,如下所示:

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="359"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:duration="1000"
    android:interpolator="@android:anim/linear_interpolator" />

但是当我在imageView上应用动画时:

this.cameraView.setAnimation(AnimationUtils.loadAnimation(this,R.anim.loadinganimation));

全部imageView旋转.我只想旋转戒指(imageview的src),我该如何实现呢?

谢谢

解决方法:

制作两个分开的视图,并使用FrameLayout包含它们.这样,您将能够将动画应用于环,而不应用于其余小部件.

编辑:

我猜你是在用android:src将图像放置在ImageView中,并在android:background中设置其他内容.如果是这样,您可以尝试使用以下方法来代替使用ImageView:

<FrameLayout>
  <ImageView with the background>
  <ImageView with JUST the shape>
</FrameLayout>

要么

<FrameLayout android:background="blah">
  <ImageView with JUST the shape>
</FrameLayout>

标签:drawable,android-animation,android
来源: https://codeday.me/bug/20191202/2085748.html