package ymm.learns.bubbleexplosion;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 设置全屏(无标题栏)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// 对于 Android 8.0 及更高版本,使用以下方式设置全屏
// setTheme(R.style.Theme_AppCompat_Light_NoActionBar);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);
} else {
// 对于较低版本的 Android,使用原始方式
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
fl = new FrameLayout(this);
fl.setBackgroundResource(R.drawable.bg);
exv1 = new ExplosionView(this);
exv1.setVisibility(View.INVISIBLE);
exv1.setBackgroundResource(R.drawable.explosion);
exa1 = (AnimationDrawable) exv1.getBackground();
fl.addView(exv1);
fl.setOnTouchListener(new LayoutListener());
setContentView(fl);
// 开始动画(如果需要)
if (exa1 != null) {
exa1.start();
}
}
private FrameLayout fl;
private ExplosionView exv1;
private AnimationDrawable exa1;
class ExplosionView extends androidx.appcompat.widget.AppCompatImageView {
public ExplosionView(Context context) {
super(context);
}
// 处理爆炸的位置
public void setLocation(int top, int left) {
this.setFrame(left, top, left + 240, top + 240);
}
}
class LayoutListener implements View.OnTouchListener {
public boolean onTouch(View v, MotionEvent event) {
// 首先,你需要停止动画,或者如果动画正在开始,
exv1.setVisibility(View.INVISIBLE);
exa1.stop();
float x = event.getX();
float y = event.getY();
exv1.setLocation((int) y - 20, (int) x - 20);
exv1.setVisibility(View.VISIBLE);
exa1.start();
return false;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android之泡泡效果bubble
共48个文件
xml:12个
webp:10个
kt:6个
需积分: 1 0 下载量 173 浏览量
2024-02-16
20:40:52
上传
评论
收藏 168KB ZIP 举报
温馨提示
Android之泡泡效果bubble升级到android8,api 26以上,anddroid studio 2022.3.1 旧代码升级
资源推荐
资源详情
资源评论
收起资源包目录
BubbleExplosion.zip (48个子文件)
gradle.properties 1KB
gradle
wrapper
gradle-wrapper.jar 58KB
gradle-wrapper.properties 236B
app
src
androidTest
java
ymm
learns
bubbleexplosion
ExampleInstrumentedTest.kt 679B
test
java
ymm
learns
bubbleexplosion
ExampleUnitTest.kt 350B
main
java
ymm
learns
bubbleexplosion
MainActivity.kt 1KB
MainActivity2.java 3KB
ui
theme
Type.kt 995B
Theme.kt 2KB
Color.kt 290B
res
anim
mipmap-xxhdpi
ic_launcher_round.webp 6KB
ic_launcher.webp 3KB
mipmap-hdpi
ic_launcher_round.webp 3KB
ic_launcher.webp 1KB
mipmap-mdpi
ic_launcher_round.webp 2KB
ic_launcher.webp 982B
mipmap-xxxhdpi
ic_launcher_round.webp 8KB
ic_launcher.webp 4KB
mipmap-anydpi
ic_launcher.xml 343B
ic_launcher_round.xml 343B
mipmap-xhdpi
ic_launcher_round.webp 4KB
ic_launcher.webp 2KB
xml
data_extraction_rules.xml 551B
backup_rules.xml 478B
values
colors.xml 378B
strings.xml 77B
themes.xml 378B
layout
activity_main.xml 352B
drawable
bubble0.png 6KB
explosion.xml 472B
ic_launcher_background.xml 5KB
explode3.png 6KB
explode1.png 6KB
ic_launcher_foreground.xml 2KB
explode2.png 6KB
explode5.png 3KB
bg.jpg 35KB
explode4.png 6KB
AndroidManifest.xml 1KB
proguard-rules.pro 750B
libs
.gitignore 6B
build.gradle.kts 2KB
gradlew.bat 3KB
local.properties 417B
build
kotlin
sessions
gradlew 6KB
.gitignore 225B
settings.gradle.kts 335B
build.gradle.kts 241B
共 48 条
- 1
资源评论
sunbingzibo
- 粉丝: 93
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功