Android 有没有一种方法可以在图层列表定义中为我的应用程序项设置动画(旋转)?
目前我有以下可绘制(Android 有没有一种方法可以在图层列表定义中为我的应用程序项设置动画(旋转)?,android,android-drawable,Android,Android Drawable,目前我有以下可绘制(splash.xml)定义: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/grey_300"/> <item> <bitmap
splash.xml
)定义:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@color/grey_300"/>
<item>
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher"/>
</item>
</layer-list>
,我想知道我是否可以一些动画的标志集中在屏幕上(可能旋转它)。到达目的地的最佳方式是什么?我已经尝试过在项目
元素中播放动画旋转
,但直到现在都没有成功。也许这会有帮助:
我注意到你使用了向导。然而,有人在评论中问他是否可以在闪屏上添加动画,他的回答是:
用我上面列出的闪屏模式制作动画是不可能的。仅当应用程序已加载时,动画才可用
除此之外,还可以设置图层列表的动画。只需将其作为背景应用于某个视图并设置该视图的动画即可
我遇到了同样的问题,并采取了变通办法。我创建了一个没有布局的SplashActivity和一个带有ProgressBar布局的ProgressActivity,并使用意图从SplashActivity转到ProgressActivity,从ProgressActivity转到MainActivity。下面是一些代码。感谢以下YouTube视频以xml格式设置ProgressBar: 可为主题绘制:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="#EEEEEE"/>
</item>
<item android:id="@android:id/background">
<shape
android:shape="ring"
android:innerRadiusRatio="24"
android:thickness="18dp"
android:useLevel="false">
<solid android:color="#EF9A9A"/>
</shape>
</item>
<item android:id="@android:id/progress">
<rotate
android:fromDegrees="0"
android:toDegrees="360">
<shape
android:shape="ring"
android:innerRadiusRatio="24"
android:thickness="18dp"
android:useLevel="false">
<gradient
android:color="@android:color/transparent"
android:angle="0"
android:startColor="#D50000"
android:type="sweep"
android:useLevel="false"/>
</shape>
</rotate>
</item>
</layer-list>
进展活动:
public class ProgressActivity extends AppCompatActivity {
private static final long DELAY = 3000L;
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(ProgressActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, DELAY);
}
}
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="#EEEEEE"/>
</item>
<item android:id="@android:id/background">
<shape
android:shape="ring"
android:innerRadiusRatio="24"
android:thickness="18dp"
android:useLevel="false">
<solid android:color="#EF9A9A"/>
</shape>
</item>
<item android:id="@android:id/progress">
<rotate
android:fromDegrees="0"
android:toDegrees="360">
<shape
android:shape="ring"
android:innerRadiusRatio="24"
android:thickness="18dp"
android:useLevel="false">
<gradient
android:color="@android:color/transparent"
android:angle="0"
android:startColor="#D50000"
android:type="sweep"
android:useLevel="false"/>
</shape>
</rotate>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="nl.braaks55.minesweeper.activities.Progress"
tools:showIn="@layout/activity_progress">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<ProgressBar
android:layout_width="160dp"
android:layout_height="160dp"
style="?android:attr/progressBarStyleLarge"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/progress_bar"
android:max="100"
android:progress="20"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/loading"
android:textAppearance="?android:textAppearanceLarge" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, ProgressActivity.class);
startActivity(intent);
finish();
}
}
public class ProgressActivity extends AppCompatActivity {
private static final long DELAY = 3000L;
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(ProgressActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, DELAY);
}
}