如何解决如何以编程方式在 Java 中添加彩票
我尝试以编程方式将 Lottie Animation 添加到 Java (Android),但我一直都失败了。我将在下面展示我的代码,我需要从 drawable 更改为 lottie。
这是drawables的代码:
if (status.equals("connect")) {
vpnBtn.setBackgroundResource(R.drawable.but_connect_light);
logTv.setTextColor(getResources().getColor(R.color.font_color));
} else if (status.equals("connecting")) {
vpnBtn.setBackgroundResource(R.drawable.but_connecting_dark);
logTv.setTextColor(getResources().getColor(R.color.font_color));
} else if (status.equals("connected")) {
vpnBtn.setBackgroundResource(R.drawable.but_disconnect_dark);
logTv.setTextColor(getResources().getColor(R.color.purple));
} else if (status.equals("failed")) {
vpnBtn.setBackgroundResource(R.drawable.but_connect_dark);
}
这是上面相关的xml
<ImageView
android:id="@+id/vpnBtn"
android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal"
android:tag="1"
android:layout_width="140dp"
android:layout_height="140dp"
android:background="@drawable/but_connect_light"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dp"/>
解决方法
首先使用这个依赖:
implementation 'com.airbnb.android:lottie:3.6.1'
在 xml 中添加 LottieAnimationView
:
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_gravity="center"
app:lottie_autoPlay="true"
app:lottie_fileName="loading.json"
app:lottie_loop="true"
app:lottie_speed="1" />
根据您的用途更改动画:
animation.setAnimation("loading.json");
注意:在资产文件夹中添加您的lottie动画json文件。
,最后我用下面的解决方案实现了这一点
String vpnsBtn;
if (check.equals("night")){
switch (status) {
case "connect":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("disconnected.json");
logTv.setTextColor(getResources().getColor(R.color.font_color));
break;
case "connecting":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("connectingg.json");
logTv.setTextColor(getResources().getColor(R.color.font_color));
break;
case "connected":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("connected.json");
logTv.setTextColor(getResources().getColor(R.color.purple));
break;
case "failed":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("disconnected.json");
break;
}
}else {
switch (status) {
case "connect":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("disconnected.json");
logTv.setTextColor(getResources().getColor(R.color.font_color));
break;
case "connecting":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("connectingg.json");
logTv.setTextColor(getResources().getColor(R.color.font_color));
break;
case "connected":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("connected.json");
logTv.setTextColor(getResources().getColor(R.color.purple));
break;
case "failed":
vpnBtn.setVisibility(View.VISIBLE);
vpnsBtn = ("disconnected.json");
break;
}
}
LottieAnimationView animationView = findViewById(R.id.vpnBtn);
animationView.setImageAssetsFolder("vpnconnect");
animationView.setAnimation(vpnsBtn);
animationView.loop(true);
animationView.playAnimation();
希望这能帮助其他想要在 Android 上通过 Lottie 使用动态按钮的人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。