package com.lz233.onetext.activity; import android.Manifest; import android.app.Service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Environment; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; import com.kd.easybarrage.Barrage; import com.kd.easybarrage.BarrageView; import com.lz233.onetext.R; import com.lz233.onetext.fragment.WelcomeFragment0; import com.lz233.onetext.fragment.WelcomeFragment1; import com.lz233.onetext.fragment.WelcomeFragment2; import com.lz233.onetext.fragment.WelcomeFragment3; import com.lz233.onetext.fragment.WelcomeFragment4; import com.lz233.onetext.fragment.WelcomeFragment5; import java.util.List; import pub.devrel.easypermissions.EasyPermissions; public class WelcomeActivity extends BaseActivity implements EasyPermissions.PermissionCallbacks{ private Receiver receiver; private static final int NUM_PAGES = 6; private String[] danmu = {"即使这些回忆使我感到悲伤,我也必须前进,相信未来。", "即使是在我感到了我的孤单,即将失去所有的希望,这份回忆,也使我更加坚强。", "梦如同黎明的泡沫一样渐渐消失。", "每个人都在自己的生命中频繁地抛弃着自己的过去。", "这世上,有所谓的普通人类吗……", "任何人身上都有一定的不健全。完美的人是不存在的。", "这即是说人类为拙作——绝对正确的选择是做不到的——", "所以……肯定……无论是怎样的人类……最后都……会变成这样——?", "当你想要放弃的时候,想想是什么让你当初坚持走到了这里。", "我想告诉你,这个世界是为了你幸福才存在的。", "人死后会成为什么?夜空中的一座孤岛。", "影响大众想象力的,并不是事实本身,而是它扩散和传播的方式。", "神啊,求求你。已经足够了。已经没事了。我们都会熬过去的。", "自古以来,天空上就是另一个世界。", "在东京的天空上,我们决定性的改变了世界的模样。", "我还没找到。我还不知道。"}; private FragmentStateAdapter pagerAdapter; private BarrageView barrageview; private ViewPager2 viewpager2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); //fb barrageview = findViewById(R.id.barrageview); viewpager2 = findViewById(R.id.viewpager2); //懒 receiver = new Receiver(); registerReceiver(receiver, new IntentFilter("com.lz233.onetext.requestpermission")); Intent intent = new Intent(this, Service.class); startService(intent); for(int i=0;i<danmu.length;i++){ barrageview.addBarrage(new Barrage(danmu[i],R.color.colorText4)); } //barrageview.addBarrage(new Barrage("233", R.color.colorText4)); pagerAdapter = new ScreenSlidePagerAdapter(this); viewpager2.setAdapter(pagerAdapter); viewpager2.setUserInputEnabled(false); //监听器 } @Override protected void onDestroy() { super.onDestroy(); barrageview.destroy(); } //返回屏蔽 @Override public void onBackPressed() { } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); //把申请权限的回调交由EasyPermissions处理 EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } @Override public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) { viewpager2.setCurrentItem(viewpager2.getCurrentItem()+1); } @Override public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) { } class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("com.lz233.onetext.requestpermission")) { final String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; EasyPermissions.requestPermissions(WelcomeActivity.this, getString(R.string.request_permissions_storage_detail_text).replace("%s", Environment.getExternalStorageDirectory() + "/Pictures/OneText/"), 1, permissions); } } } private class ScreenSlidePagerAdapter extends FragmentStateAdapter { ScreenSlidePagerAdapter(FragmentActivity fa) { super(fa); } @NonNull @Override public Fragment createFragment(int position) { switch (position){ default: return new WelcomeFragment0(viewpager2); case 1: return new WelcomeFragment1(WelcomeActivity.this,viewpager2); case 2: return new WelcomeFragment2(WelcomeActivity.this,viewpager2); case 3: return new WelcomeFragment3(WelcomeActivity.this,viewpager2); case 4: return new WelcomeFragment4(viewpager2); case 5: return new WelcomeFragment5(WelcomeActivity.this,viewpager2); } } @Override public int getItemCount() { return NUM_PAGES; } } }