MVVM实现一个小说APP(一)

嘿,今天的你过的还好吗

突发奇想昂,我记得之前写过一个小说的阅读器,仿制的QQ阅读...但是过于久远,很多东西都是网上趴出来的....属于自己的东西很少...那从今天开始,我就自己写一个小说阅读器,每个步骤,我都在简书上写出来.包括思路啊什么之类的...本来想用Kt写的...我怕我写一半呢.kt用烦了...断更了.所以java...MVVM不用说了...必用.也方便我调取东西.网络层 retorfit+rxjava...版本管理Git(没初步完成之前.我可能不会放出来...)至于app名字...没太想好...反正先做吧.那天想好了再说...不是很重要...整个流程我会努力按照标准来进行.命名啊.规范啊之类的...当然,我努力...

啊对!因为整个流程app都得我自己来想昂.进度慢也是正常,毕竟本人也有班要上,后台接口数据库也都得自己上...很多东西也是需要学习来找...当然.也欢迎有兴趣小伙伴私信加入昂...不为别的.就为了喜爱...我初步安排是这样...先画界面,感觉差不多了再去找后台...没有美工昂...好不好看就凭感觉.或者说谁介绍一个我也不是不行

那么第一天,先实现一个引导页,先说思路昂...
害.闪屏页.国家整改.不放广告不就完了....
1.铺满全屏的一个图片或者动图/实在丑加个滑动也不是不可.可以慢慢调
2.右上角加一个圆钮倒计时跳过吧.在整个边框渐变.完美
3.自己给自己打广告应该不违规.所以我打算加个点击事件,跳转一下自己的书城啥的.至于书得去找人谈...那等以后再说
4.文案复制,我打算在首页加一段话.点击复制,算是每天一句毒鸡汤

首先架构啥的就略过了,,,没个人风格都不同...我直接给大家看一下得了


项目框架

今天主要就是Splash功能实现

import android.annotation.SuppressLint;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.os.CountDownTimer;
import android.view.View;

import com.blankj.utilcode.util.ToastUtils;
import com.xql.book.MainActivity;
import com.xql.book.R;
import com.xql.book.basic.BaseActivity;
import com.xql.book.bean.SplashBean;
import com.xql.book.databinding.ActivitySplashBinding;
import com.xql.book.txt.Phrase;
import com.xql.book.vm.SplashVM;

public class SplashActivity extends BaseActivity<ActivitySplashBinding, SplashVM> {
    //SplashBean实例化
    private final SplashBean splashBean = new SplashBean();
    //闪屏页短语
    private final Phrase phrase = new Phrase();
    //是否点击跳过
    private Boolean isSkip = false;

    @Override
    protected int layoutId() {
        return R.layout.activity_splash;
    }

    @Override
    protected void initData() {
        //点击事件
        mBinding.setOnClickLister(SplashActivity.this);
        //获取短语
        splashBean.setPhrase(phrase.PhraseText());
        //总时间
        int TOTAL_TIME = 3000;
        //间隔时间
        int INTERVAL_TIME = 1000;
        //闪屏页倒计时
        TimeCount time = new TimeCount(TOTAL_TIME, INTERVAL_TIME);
        time.start();
    }

    /**
     * 点击事件
     *
     * @param view
     */
    @SuppressLint("NonConstantResourceId")
    public void OnSingleClickListener(View view) {
        switch (view.getId()) {
            case R.id.tv_countDown:
                isSkip = true;
                Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
                break;
            case R.id.tv_phrase:
                getPhraseText((String) mBinding.tvPhrase.getText());
                ToastUtils.showLong("复制成功");
                break;
        }
    }


    /**
     * 倒计时方法封装
     */
    class TimeCount extends CountDownTimer {

        public TimeCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onTick(long l) {
            splashBean.setCountDown("跳过(" + l / 1000 + ")");
            mBinding.setSplash(splashBean);
        }

        @Override
        public void onFinish() {
            if (!isSkip){
                Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            }

        }
    }

    /**
     * 剪切板管理器
     */
    public void getPhraseText(String phrasetext){
        //获取剪贴板管理器
        ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        //创建普通字符型clipdata
        ClipData mClipData = ClipData.newPlainText("phrase",phrasetext);
        cm.setPrimaryClip(mClipData);
    }
}

好了,今天就先这样...然后给今天成果贴出来

Splash页面

复制情况

.......昨晚又改了点其他东西,加了个每天只第一次时候显示引导页

  //判断是否写入istoday
        String istoday = SPUtils.getInstance().getString("istoday");
        if (!istoday.equals("")) {
            //判断是否今天
            boolean today = TimeUtils.isToday(istoday);
            if (today) {
                LogUtils.e("是");
                isSkip = true;
                Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                startActivity(intent);
                finish();
            } else {
                LogUtils.e("不是");
                String nowString = TimeUtils.getNowString();
                SPUtils.getInstance().put("istoday", nowString);
            }
        } else {
            String nowString = TimeUtils.getNowString();
            SPUtils.getInstance().put("istoday", nowString);
        }

没更新或者频繁更新的时候都是在认真生活

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,082评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,231评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,047评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,977评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,893评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,976评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,605评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,888评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,906评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,732评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,513评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,980评论 3 301
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,132评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,447评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,027评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,232评论 2 339

推荐阅读更多精彩内容