Android App每日更换壁纸

android 壁纸自动切换 壁纸自动切换,适合初学者,主要联系handle的使用 立即下载
  1. App的效果

    这里写图片描述

    首先App中的图片就是微软Bing搜索中的壁纸,下一节中我会回答怎么通过获取Bing壁纸。接下来你打开http://cn.bing.com/,来验证一下显示的图片是不是和下图是一样的。

这里写图片描述

  1. 获取Bing背景图片的链接
    我们查看页面的源代码,可以发现类似下图的代码
    这里写图片描述

我们把地址提取出来 http://s.cn.bing.net/az/hprichbg/rb/FlorenceView_ZH-CN14082192121_1920x1080.jpg,然后我们打开可以看到如下图

这里写图片描述

这是今天,也就是 2015年7月30号 显示的图片,当你看到这篇博文的时候肯定不是显示这章图片,可能上面的链接也打不开了。我们从链接知道 图片是1920x1080的,这在宽屏显示器上还行,可我们的手机是竖屏的,这可怎么办呢?
用过Winphone的朋友可能都知道,屏幕锁屏界面就是Bing图片,而Winphone就是竖屏的啊,况且笔者手中也有一个lumia手机。于是我碰运气的试了试,把上述链接的尺寸改变了一下,奇迹就发生了。

http://s.cn.bing.net/az/hprichbg/rb/FlorenceView_ZH-CN14082192121_720x1280.jpg

720x1280是目前主流手机的分辨率吧,看下图知道了。
这里写图片描述

接下来,我们只需要在App中对Bing发出请求,然后用正则分析出原始图片的地址,再把分辨率换成我们想要的就行了。这一切用正则就行了,代码如下:

String string = new String(responseBody, "UTF-8");
String match = "";
String reg = "http:\\/\\/s\\.cn\\.bing\\.net.{10,100}\\.jpg";
Matcher m = Pattern.compile(reg).matcher(string);
while (m.find()) {
    match = m.group(0);
}
match = match.replace("1920", "720");
match = match.replace("1080", "1280");

3.App每天更换背景的逻辑

当用户启动App的时候,判断是否已经获取了今日的壁纸,如果有,那么设置壁纸为应用背景,否则,获取今日的壁纸,并且设置为今日壁纸

逻辑看起来很简单,分析起来其实挺复杂的,要考虑到一下几个问题:
1:当用户启动App时,手机没有联网
2:如何判断用户已经获取了壁纸

我的处理方法是:
onCreate():设置一个间隔为一分钟的计时器,当没有获取到壁纸,则一直运行下去,获取到壁纸,则取消计时器,并且向sharePreferences写入今日的日期。 然后判断是否已经获取今日壁纸是通过比对用户手机中的日期与sharePreferences中的日期是否一致进行的。

在onCreate()和onResume()中更新壁纸
还有诸多的细节问题,就看源代码吧

核心代码:

//onCreate()
loadBingPic();
timer.scheduleAtFixedRate(new getBingPic(), 5 * 1000, 60 * 1000);

//Class getBingPic
public class getBingPic extends TimerTask {
public void run() {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
    Date curDate = new Date(System.currentTimeMillis());
    String today = formatter.format(curDate);
    if (today.equals(sharedPreferences.getString(TODAY, ""))) {
        timer.cancel();
        return;
    }
    HttpRequest.get(bingUrl, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers,
                byte[] responseBody)
                throws UnsupportedEncodingException {
            String string = new String(responseBody, "UTF-8");
            String match = "";
            String reg = "http:\\/\\/s\\.cn\\.bing\\.net.{10,100}\\.jpg";
            Matcher m = Pattern.compile(reg).matcher(string);
            while (m.find()) {
                match = m.group(0);
            }
            match = match.replace("1920", "720");
            match = match.replace("1080", "1280");
            HttpRequest.get(match, new AsyncHttpResponseHandler() {
                public void onSuccess(int statusCode, Header[] headers,
                        byte[] responseBody)
                        throws UnsupportedEncodingException {
                    String state = Environment
                            .getExternalStorageState();
                    if (Environment.MEDIA_MOUNTED.equals(state)) {
                        File sdcardDir = Environment
                                .getExternalStorageDirectory();
                        String path = sdcardDir + "/" + mkDir;
                        File dir = new File(path);
                        if (!dir.exists()) {
                            dir.mkdirs();
                        }
                        SimpleDateFormat formatter = new SimpleDateFormat(
                                "yyyyMMdd");
                        Date curDate = new Date(System
                                .currentTimeMillis());
                        String today = formatter.format(curDate);
                        sharedPreferences.edit()
                                .putString(TODAY, today).commit();
                        File photo = new File(path, "bing.jpg");
                        if (photo.exists()) {
                            photo.delete();
                        }
                        try {
                            FileOutputStream fos = new FileOutputStream(
                                    photo.getPath());
                            fos.write(responseBody);
                            timer.cancel();
                            Message message = new Message();
                            message.what = 1;
                            mHandler.sendMessage(message);
                            fos.close();
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }

                public void onFailure(int statusCode, Header[] headers,
                        byte[] responseBody, Throwable error)
                        throws UnsupportedEncodingException {
                }
            });
        }

        public void onFailure(int statusCode, Header[] headers,
                byte[] responseBody, Throwable error)
                throws UnsupportedEncodingException {
        }
    });
}
}

//loadBingPic()
public void loadBingPic() {
        System.out.println("loadBingpic()");
        String str = "";
        if (!sharedPreferences.getString(TODAY, "").equals(str)) {
            String photo = Environment.getExternalStorageDirectory().getPath()
                    + "/" + mkDir + "/bing.jpg";            mainUI.setBackgroundDrawable(Drawable.createFromPath(photo));
        }
    }
Android-仿小米等壁纸App的壁纸设置界面-滚动图片预览 仿小米等壁纸App的壁纸设置界面,SeekBar控制HorizontalScrollView滚动。 立即下载

相关推荐

Android墙纸定时更换muzei.zip

muzei 可以定时更换 Android 桌面精美壁纸 标签:muzei

Android-动态壁纸的实现

前言:   最近遇到了几个很恶心的问题,第一个是手机录制视频发现资源不够用,第二个是手机播放视频发现卡顿。找了半天两个问题的root cause都是手机动态壁纸。我们手机动态壁纸的实现是无论当前壁纸是否处于前台,video instance都是一直活跃的。不得不说,这个设计真的很过分,一是浪费资源,二是会引起很多video的问题。所以今天就了解下动态壁纸的具体实现过程,看看是否可以优化这个设计…...

cheriyou_的博客 3848

自动换桌面背景自动换桌面背景

写一个每隔20秒自动更换桌面背景的小程序。

将应用程序背景设置为桌面壁纸背景

1.  在配置文件下的<activity结点添加透明theme android:theme="@android:style/Theme.Translucent"> 2. 在主Activity的onCreate()方法内添加 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);

周周周周的博客 4069

bing每日壁纸自动更换

bing每日12点自动更换壁纸!可选择每个国家.

桌面壁纸自动更换小程序

桌面自动更换壁纸小程序,文件小 ,可随电脑开机启动

android 自动更换壁纸,超简单实用!教你安卓自动更换壁纸的方法

爱美不只是女人的天性,喜新厌旧也算不上什么坏毛病。尤其如今手机分辨率越来越高、色彩表现也愈发给力,要是不给手机时不时换个高端大气上档次的壁纸,都对不起那块高科技屏幕。所以今天给大家带来安卓自动更换壁纸的方法,让你每次掏出手机都能找到新鲜感。要实现自动换壁纸的功能,只要借助APP就好了。其实在安卓平台上颇有几款具有这种功能的APP,在经过一番精心筛选之后,我们选中了《安装并打开《爱壁纸》首先可以看到...

weixin_36437537的博客 5404

一个可以自动换壁纸的程序

一个可以自动更换壁纸 简单好用!!!!!!!!!!!!

android m壁纸驱动之家,微软打造的良心壁纸App,仅4.2M

上次小编介绍了一系列的电脑壁纸自动换软件,收到了不少好评。不过有不少网友问有没有手机上的壁纸自动换APP呢?手机上的壁纸软件还真不少,这不必应壁纸也出了个手机版的,一起来看看吧。和电脑版一样,必应壁纸的手机版也是小巧玲珑且易用的。只有4.2M大小的它让你不用担心占用过多存储空间。打开必应壁纸手机版,它就会自动载入壁纸,并且将壁纸分为了日常壁纸、壁纸库与纯色。每日更新日常壁纸轻松设为壁纸在日常壁纸...

weixin_39828960的博客 535

Error relaunching VirtualBox VM process:5错误解决

前几天在重新使用VirtualBox的时候出现了一个挺恶心的错误,如图 百度了好久没有找到合适的解决方法。功夫不负有心人,在查阅了vb相关论坛时发现了大牛对此问题的诸多解决方案。下面我把此论坛的内容总结一下,希望对大家有帮助。 论坛链接:Diagnosing VirtualBox Hardening Issues 时间不足的小伙伴可以直接看 解决方法 造成这个错误的主要原因是,windows操作系统与oracle vb的不兼容。有两个方面,一是非官方windows系统中包含了一些没有签名的d

JaCenz的博客 3万+

Zemax序列模式下激光二极管(LD)光源建模与像散校正实战

本文详细讲解了在Zemax序列模式下精确建立激光二极管(LD)光源模型并校正其像散的核心方法。通过将椭圆光束的发散角转换为渐晕系数,并巧妙利用理想柱面镜模拟像散,实现了对LD光源特性的高精度模拟。该方法特别适用于激光耦合、激光雷达等需要对像散光束进行精密控制的光学系统设计。

weixin_28455801的博客 440

动态壁纸安卓_安卓壁纸专为安卓打造,拥有海量高清壁纸,还有精美动态壁纸!...

今天给朋友们分享一款壁纸APP——安卓壁纸APP简介安卓壁纸APP是一款为安卓用户量身打造的手机壁纸软件,有各种各样的图片以及动态壁纸,美女、帅哥、风景、影视、艺术等等,全部都是免费下载,流量耗费极低,瞬间让你的手机炫酷起来,安卓壁纸是为手机提供免费手机壁纸的专用软件,连续5年,排名第一的手机美化应用,一键改变你的桌面、锁屏!有海量高清手机壁纸,自动适应和匹配你的手机屏幕,让你的手机随...

weixin_39975529的博客 301

WinIDEA基于IC5000烧录代码和调试教程

winIDEA就是ic5000用来烧录代码和调试代码的上位机,本文旨在介绍其如何去烧录代码并且调试

m0_56208280的博客 4163

android视频动态壁纸app,视频动态壁纸app下载-视频动态壁纸app安卓版下载V1.0安卓版 - 非凡软件站...

提供了海量高清壁纸以及各种各样主题的《视频动态壁纸》APP带给大家,大家可以根据自己喜欢的类型进行更换使用,打造独一无二的手机桌面。无论是动态壁纸还是静态壁纸都能在这里找到,各色各样的壁纸任你挑选,本地视频也可以设置成为壁纸哦。软件特色1、24款官方主题+多款自定义主题,免费的;2、多显示器,你可以选择显示每个主题;3、编辑模式,你能改变时间,时钟位置,或文本的任何位置;4、在开关之间的空间,壁纸...

weixin_39997695的博客 393

【DeepSeek+Office/WPS】智能办公新时代的全新利器

DeepSeek是一家专注于通用人工智能技术研发的中国科技公司,其核心产品DeepSeek-R1是一款开源的推理大模型,专注于复杂任务的高效处理,支持智能对话、文本生成、语义理解、计算推理、代码生成与补全等多种应用场景。作为国产、免费、开源且强大的AI平台,DeepSeek不仅致力于为终端用户提供高质量的智能服务,还为开发者提供了一整套完善的技术解决方案,帮助他们快速构建和部署自己的智能应用。

2303_77200324的博客 2791

智能小车倒车入库功能的实现(python,cpp,ubuntu)

智能小车倒车入库功能的实现(python,cpp,ubuntu)

weixin_62135607的博客 5794

安卓一键换壁纸

360手机有一个很赞的应用,没有界面,点击一下图标换一张壁纸,其他手机都没有看到这个功能。vivo倒是有亮屏换锁屏壁纸。

海天鹰 557

SAP Event Mesh 简介

Get Started with Messaging for Decoupled Communication Step 1: What is the SAP Event Mesh service? SAP Event Mesh 是一种完全托管的服务,用于连接应用程序、服务和系统,以便它们可以通过消息和事件相互交互。 它通过引入中央消息代理取代了传统的点对点通信。 虽然点对点通信适用于在有限数量的发送方和接收方之间共享数据,但可扩展性很快就会成为一个问题。 SAP Event Mesh 解决了这个问题,并确保

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1244

android每日更新壁纸,最美壁纸app安卓最新版下载 v4.0.9[网盘资源] - 艾薇下载站...

安卓动态壁纸是一款运行在Android系统上面的精美壁纸软件,使用这款软件能够自定义设置你的独一无二的精美壁纸哦。是不是有的时候总是为找壁纸而烦恼呢?是不是总是找不到自己想要的壁纸呢?没有关系,它,来了,该软件是国内最大的壁纸和锁屏平台,采用了时下最先进的壁纸加载引擎,能够在保证高清逼真的动态表现的情况下,不占用手机过多的内存,不用担心手机卡顿问题哦,十分的方便好用。另外该软件云集了国内优秀的各种...

weixin_42568714的博客 673

基于simulink的车道保持辅助系统(LKA)的仿真与实现

本文介绍了如何利用Simulink实现车道保持辅助系统(LKA)的仿真与建模。首先对比了车道偏离预警(LDW)和LKA的功能差异,强调LKA的主动干预特性。接着详细阐述了LKA系统架构,包括环境感知、决策控制等核心组件,并基于自行车模型建立车辆横向动力学方程。 文章重点演示了Simulink建模步骤:搭建车辆动力学模型、设计LKA控制器(采用LQR算法)、实现执行器接口和驾驶员干预检测。通过四个典型场景的仿真测试,验证了系统在直道行驶、弯道跟踪等工况下的控制性能,并给出了关键评价指标。最后展望了MPC控制、

amy_mhd的博客 228

Linkage Mapper 工具参数详解——Building Network and Map Linkages

此文档用于解析使用LinkageMapper各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。

sumuses的博客 6120

超级壁纸android,超级壁纸大全app下载

超级壁纸大全涵盖了大量的壁纸,而且还是高清的哦!拥有详细的壁纸分类,用户可以根据自己的需求进行寻找,如果遇到精美的照片还可以一键收藏,让你不会错过喜欢的壁纸,而且还拥有美化功能,对壁纸进行二次美化,功能是不是非常强大,有感兴趣的用户千万不要错过哦!超级壁纸大全软件介绍:超级壁纸大全,拥有超全分类的高品质壁纸主题,动态壁纸、头像壁纸、明星壁纸、运动健身、动漫卡通等等,每天设置一张壁纸,让您天天耳目一...

weixin_39921224的博客 454

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

透明壁纸android,主题透明壁纸软件下载-主题透明壁纸 安卓版v1.0-PC6安卓网

主题透明壁纸app是一款图库资源丰富高清无水印的桌面美化手机软件,主题透明壁纸app汇聚了各种各样时尚好看的高清壁纸和主题模板,用户可随时进入主题透明壁纸软件平台进行更换设置。软件介绍主题透明壁纸软件,支持用户上传超清+创意+特效的卡点视频,网络精选卡点视频资源都在这里。动态桌面,把网上流行的壁纸做成动态壁纸,简单操作即可制作专属个性高清视频桌面。主题透明壁纸,汇集了千万网络精选卡点视频,供用户浏...

weixin_36327582的博客 810

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

壁纸app上线了 ,欢迎大家下载使用

壁纸精灵,高清壁纸每日更新,壁纸种类多到你想要尖叫,全部免费解锁,满足你对壁纸的一切要求,打造你专属的个性化移动手机壁纸大全 使用中有任何反馈 可私聊处理...

Fly的学习博客 1365

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10主题更换_利用termuxapi手机定时更换网络随机壁纸;免费申请小米收款宝

1、再来发一个没有什么软用的教程,利用termux-api手机定时更换网络壁纸。国产定制系统,有很多主题,更换随机壁纸也相对比较简单。但是对于原生或者类原生系统,如一加,索尼,诺基亚,pixel等等没有主题商店,想要定时更换随机壁纸就比较麻烦了。可以利用termux-api更换随机壁纸,再可以利用crontab设置定时更换。详细教程:https://zsxwz.com/2020/02/2...

weixin_39968309的博客 675

WallYou壁纸应用完整上手指南:一款注重隐私的开源自动换壁纸神器

每天面对千篇一律的手机锁屏,你是不是也想过:有没有一款应用,既能自动帮你换壁纸,又不偷偷收集你的个人数据?今天要介绍的 WallYou 壁纸应用,正是一款主打隐私保护的免费开源 Android 壁纸工具。它基于 Material Design 3(MD3)设计语言打造,支持壁纸浏览下载、自动更换、收藏历史与图片滤镜等实用功能,下面这份新手向的 WallYou 完整指南,会带你从安装一路玩到进阶技巧

gitblog_01070的博客 980
上一篇: Windows下Casperjs Phantomjs的安装
下一篇: Android事件处理
coder_ken
博客等级 码龄12年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值