-
Android开发---3种方式教会你炫酷的Android界面缓冲跳转另一界面
2020-08-07 22:09:49前言:在我们使用App时,难免会看见App首界面会有一些广告或者动画什么的,总会有个几秒的缓冲时间,那么本博文就用最通俗易懂的3中方式教会你界面缓冲效果; 界面缓冲:一.线程(Thread):二:Handler:三:Timer: 一.线程...前言:在我们使用App时,难免会看见App首界面会有一些广告或者动画什么的,总会有个几秒的缓冲时间,那么本博文就用最通俗易懂的
3
中方式教会你界面缓冲效果;
一.线程(Thread):
线程:比进程更小的执行单元,进程可以创建多个线程,线程依附在进程里,没有进程就没有线程
1.继承Thread类:通常我们写一个类继承Thread
,然后在需要的位置进行调用;
2.Runnable接口:在相应的位置也就是相应的Activity
中调用接口,即:mplements Runnable
;
3.匿名函数:通常我们比较喜欢使用匿名函数,在其中写入执行的程序;
相信大家对try{} catch()
不陌生吧,就是异常处理语句,即使程序出错也不会崩溃,会执行catch
中的程序代码
主要代码如下所示:final Intent intent = new Intent(this, Main2Activity.class); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); startActivity(intent); finish(); } catch (InterruptedException e) { e.printStackTrace(); } } }).start();
如果看不懂的话,我来解读一下,
sleep(3000)
也就是让程序休眠3
秒,从这儿就可以看出,里面需要的参数是毫秒
并非秒,然后在开始Activity(intent)
,这个intent
也就是在前面进行绑定跳转的界面Main2Activity
,接着执行结束,最后面使用start
进行开启,如果程序出错会进入到catch
语句中,并不会导致程序崩溃…二:Handler:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI
解释:当程序启动时,Android
会启动一个主线程
也就是UI线程
,进行资源的分配,但是,假如说当你要进行大数据的传输,你不可能把这个任务交给主线程吧,那么程序就会出现短暂的卡死现象,这个时候我们需要把这些耗时的操作,放在一个子线程
中,因为子线程涉及到UI更新,Android主线程
是不安全
的, 也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。在这个时候Handler就出现了,来解决这个复杂的问题,这个时候,Handler
就承担着接受子线程传过来的(子线程用sedMessage()
方法来进行传递)Message对象
,(里面包含数据等) , 把这些消息放入主线程队列中,配合主线程进行更新UI
1.postDelayed(new Runnable():延迟跳转,运行在主线程里
2.Runnable接口:在相应的位置也就是相应的Activity
中调用接口,即:mplements Runnable
;new Handler().postDelayed(new Runnable() { @Override public void run() { startActivity(intent); inish(); } },3000);
和线程基本相似,因为它就是线程的分配调用而已
三:Timer:
说起
Timer
想必大家都不陌生,基本在哪个编程语言中都会遇到,就是定时器,而TimerTask
则是一个抽象类,其中有一个抽象方法run()
,类似线程中的run()
方法,我们使用Timer创建一个对象然后使用对象的schedule()
方法来进行我们的这种间隔的操作;
关于schedule
中的参数,第一个参数就是我们的timerTask对象
,第二个参数就是我们间隔的周期
,也是毫秒
单位Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { startActivity(intent); } }; timer.schedule(timerTask, 3000);
本文主要部分已经讲完,来看看全部
Java
代码:package com.example.musicplayer; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.TextView; import android.widget.Toast; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); final Intent intent = new Intent(this, Main2Activity.class); /* timer方式实现*/ // Timer timer = new Timer(); // TimerTask timerTask = new TimerTask() { // @Override // public void run() { // startActivity(intent); // } // }; Toast.makeText(this,"稍等页面将在3秒后进行跳转",Toast.LENGTH_LONG).show(); // timer.schedule(timerTask, 3000); /*handler方式实现*/ new Handler().postDelayed(new Runnable() { @Override public void run() { startActivity(intent); finish(); } },3000); /*Thread方式实现*/ // new Thread(new Runnable() { // @Override // public void run() { // try { // Thread.sleep(3000); // startActivity(intent); // finish(); // } catch (InterruptedException e) { // e.printStackTrace(); // } // } // }).start(); } }
-
Android实现广告进入界面
2018-01-17 12:05:29前些时候就是别人问我他的android APP怎么做一个广告的欢迎界面,就是过几秒后自动跳转到主界面的实现。 也就是下面这种类似的效果。要插什么广告的话你就换张图吧。 那么我就思考了下,就用了...前些时候就是别人问我他的android APP怎么做一个广告的欢迎界面,就是过几秒后自动跳转到主界面的实现。
也就是下面这种类似的效果。要插什么广告的话你就换张图吧。
那么我就思考了下,就用了android 的一个动画类Animation...其实在Android 的API开发文档上就有的一个东西。自己可以去查下看。就像下面的这个图上面的一样的。也是属于界面View 下的一个类方法...
其实这个东西,怎么讲呢。
咱主要的话还是来一个小白都看的懂的一个教程类的文章吧。
第一步的话
咱先开始在咱的项目中新建一个anim的文件夹用来存等会要用到的一些 倒计时 的文字的动态效果的吧。(想想还是截个屏吧,怕有些同志还是看不懂...没别的意思)
看到了么,就是这样的,在你的Android项目下的存放资源的那个文件夹中新建一个anim文件夹,再新建一个animation_text.xml
的xml文件,待会就知道有啥用了。
咱下面
第二步的话,咱就开始添加内容了。
1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <alpha 5 android:duration="1000" 6 android:fromAlpha="0.0" 7 android:toAlpha="1.0" /> 8 9 <scale 10 android:duration="800" 11 android:fromXScale="1.5" 12 android:fromYScale="1.5" 13 android:pivotX="50%" 14 android:pivotY="50%" 15 android:toXScale="1.0" 16 android:toYScale="1.0" /> 17 18 </set>
上面的效果的话,如果是不知道这些属性是什么意思的话那你可以百度的,我这一一讲的话就感觉有点啰嗦的了。
咱还是讲正题吧,那上面这些写的有什么用呢。就看下面了,那么我们下面就得开始把那个界面布局出来了吧,然后我们下面就开始吧,
做一个类似我上面的界面吧。咱就用FrameLayout布局了,如果知道是什么布局方式的话,我觉得应该看的懂吧。
1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:background="@drawable/page24" 6 tools:context="${relativePackage}.${activityClass}" > 7 8 <LinearLayout 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:layout_gravity="right" 12 android:orientation="horizontal" > 13 14 <TextView 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:layout_gravity="right" 18 android:text="广告倒计时:" 19 android:textColor="#ffffff" 20 android:textSize="20sp" /> 21 22 <TextView 23 android:id="@+id/textView" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:layout_gravity="right" 27 android:text="5" 28 android:textColor="#ffffff" 29 android:textSize="20sp" /> 30 31 <TextView 32 android:layout_width="wrap_content" 33 android:layout_height="wrap_content" 34 android:layout_gravity="right" 35 android:text="s" 36 android:textColor="#ffffff" 37 android:textSize="20sp" /> 38 </LinearLayout> 39 40 </FrameLayout>
下面的话咱就开始要写怎么在app内部实现的方法了吧,这就到了我们的Java的程序天地来了。
这时候我们就在项目下的src文件下的包里面写上你的Java文件吧。咱慢慢来,别急。
1 /** 2 * 3 * 1.声明界面 4 * 2.定义变量 5 * 3.调用类Animation 6 * 4.写方法让它动起来 7 * @author Rain 8 * 9 */ 10 public class WelcomeActivity extends Activity{ 11 12 // 声明控件对象 13 private TextView textView; 14 //声明时间有多少; 15 private int count = 5; 16 private Animation animation; 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 // 下面的话就是去除标题的方法 22 requestWindowFeature(Window.FEATURE_NO_TITLE); 23 setContentView(R.layout.activity_welcome); 24 // 初始化控件对象textView 25 textView = (TextView) findViewById(R.id.textView); 26 animation = AnimationUtils.loadAnimation(this, R.anim.animation_text); 27 handler.sendEmptyMessageDelayed(0, 1000); 28 29 30 } 31 32 //咱在写一个计算Welcome界面的广告时间结束后进入主界面的方法 33 private int getCount() { 34 count--; 35 if (count == 0) { 36 Intent intent = new Intent(this, MainActivity.class); 37 startActivity(intent); 38 finish(); 39 } 40 return count; 41 } 42 43 //进行一个消息的处理 44 @SuppressLint("HandlerLeak") 45 private Handler handler = new Handler() { 46 public void handleMessage(android.os.Message msg) { 47 if (msg.what == 0) { 48 textView.setText(getCount()+""); 49 handler.sendEmptyMessageDelayed(0, 1000); 50 animation.reset(); 51 textView.startAnimation(animation); 52 } 53 54 }; 55 56 }; 57 58 }
用的时候可得注意导入下包哈。
这样一个会自动跳转到主界面的广告界面就完成了。
谢谢观看。大家可以畅所欲言,发表看法,吾等虚心接受的。
-
Android开发首页欢迎界面跳转功能的实现
2016-07-15 10:58:52在开发App过程中,一般我们会看见首页会有个欢迎界面,有时候会放入个呕吐的广告在这,几秒之后再跳转或者点击跳转按钮之后再进入我们的程序页面,那么这里是如何实现的呢?这里介绍一下postDelayed。这是一种可以...在开发App过程中,一般我们会看见首页会有个欢迎界面,有时候会放入个呕吐的广告在这,几秒之后再跳转或者点击跳转按钮之后再进入我们的程序页面,那么这里是如何实现的呢?这里介绍一下postDelayed。这是一种可以创建多线程消息的函数
使用方法:
1,首先创建一个Handler对象
Handler handler=new Handler();
2,然后创建一个Runnable对象
Runnable runnable=new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//要做的事情,这里再次调用此Runnable对象,以实现每两秒实现一次的定时器操作
handler.postDelayed(this, 2000);
}
};
3,使用PostDelayed方法,两秒后调用此Runnable对象
handler.postDelayed(runnable, 2000);
实际上也就实现了一个2s的一个定时器
4,如果想要关闭此定时器,可以这样操作
handler.removeCallbacks(runnable);
当然,你也可以做一个闹钟提醒延时的函数试试,比如,先用MediaPlayer播放闹钟声音,
如果不想起,被停止播放之后,下次就5分钟后再播放,再被停止的话,下次就4分钟后播放,
………………
只要更改延时的时间就可以实现了,用一个static对象的话会比较容易操作。
是可以异步效果,但Runnable的执行是在Handler对象所在的线程
如果其所在的线程是UI线程的话,Runnable中还是不能执行耗时操作,不然会ANR
前几天我们自己的设备很卡,卡到跳转界面都需要不到1秒的时间,我就把跳转的动作放在Runnable里边,外边加上弹出进度提示框
代码例子如下:
public class XXX extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.loading); // 显示第1屏
Handler handler = new Handler();
handler.postDelayed(new splashhandler(), 2000); // 延迟2秒,再运行splashhandler的run()
}
class splashhandler implements Runnable{
public void run(){
startActivity(new Intent(getApplication(), SecondActivity.class)); // 显示第2屏
XXX.this.finish(); // 结束第1屏
}
}
} -
android广告开发
2012-10-02 11:00:42广告条:最普遍的广告模式,嵌入在应用界面内,用户点击行为会带来收入。 积分墙:应用通过限制功能、去广告等引导用户进入积分墙页面下载广告应用得到积分来换取使用的模式,用户安装完推荐广告软件后开发者才有...android广告平台介绍:
广告模式:
广告条:最普遍的广告模式,嵌入在应用界面内,用户点击行为会带来收入。
积分墙:应用通过限制功能、去广告等引导用户进入积分墙页面下载广告应用得到积分来换取使用的模式,用户安装完推荐广告软件后开发者才有收入,该模式会被一些市场和发布渠道拒绝应用上架。
推送:通过类似短信通知的模式展示广告,此模式用户点击率奇高,所以也是最受市场排挤的模式,像应用汇、安智市场、安卓市场、N多网等等都拒绝发布带推送广告的软件。我用过的一些广告平台介绍:
1. 万普平台
我个人觉得最给力的广告平台,广告单价最高,扣量也不多。其主要广告为广告条、积分墙、推送3种模式,主要以CPA广告为主。开发者注册地址:http://www.waps.cn/?f=zhangjian31或http://www.waps.cn/news.jsp?id=1428&type=new
,这是我的推荐地址。数据每1个小时更新一次左右,收入周结算,可以添加多个成员,人均收入低于800每月的,不收任何税费。超过的提现税率为6%。万普的收入明显比其他广告平台高很多、很多...。有人说像应用汇、安智市场、安卓市场等大市场都拒绝带万普广告的应用,其实不然,只要你合理的嵌入广告是没问题的,我用万普的广告就已经在以上几个市场上发布成功,当然还有其他的应用市场,在此就不在罗列啦。
2.其他平台待研究,本人也是新人,以后与大家一起交流分享。
-
android安卓app开发之漂亮的UI界面,控件_附效果图和源代码.zip-安卓动画导航栏,滑动广告
2021-01-12 17:03:43android安卓app开发之漂亮的UI界面,控件_附效果图和源代码.zip-安卓动画导航栏,滑动广告 -
浅谈Android的广告欢迎界面(倒计时)
2017-12-27 20:51:00前些时候就是别人问我他的android APP怎么做一个广告的欢迎界面,就是过几秒后自动跳转到主界面的实现。 也就是下面这种类似的效果。要插什么广告的话你就换张图吧。 那么我就思考了下,就用了android 的一个... -
Android 实现广告欢迎界面(倒计时)
2021-01-04 23:53:43前些时候就是别人问我他的android APP怎么做一个广告的欢迎界面,就是过几秒后自动跳转到主界面的实现。 也就是下面这种类似的效果。要插什么广告的话你就换张图吧。 那么我就思考了下,就用了android 的一个动画类... -
使用Android安卓开发一款适合小情侣的app--闪屏界面开发
2020-06-21 11:21:50对于如图所示的效果,想必大家都熟悉,当我们打开app的时候,通常首页是一个闪屏页,通过5秒钟的倒计时,才能跳转到主页面,这个界面通常来设置一些广告。 布局代码 <?xml version="1.0" encoding="utf-8"?> &... -
Android app开发 如何添加启动界面
2019-06-19 11:33:42打开任意的一个app时,其中大部分都会显示一个启动...一种是两个Activity实现,即需要一个启动界面的Activity和一个启动界面执行完后跳转到的Activity 另一种则是由一个Ativity实现,但相对代码量也增加了一些。 ... -
[Android开发] Xposed 插件开发之三: 编写广告去除插件
2016-09-18 16:59:16一、 准备 要去广告的app: 追杀神器3.75 反编译工具: AndroidKiller1.3.1...要去除的有: 首页的游戏中心(其余的广告自己尝试)三、 获取信息1. 获取控件类型和id安装打开追书神器,利用UIAnimationView获取界面。 可 -
Android开发之启动页与广告页
2018-12-20 09:57:40在我们APP的开发过程中,启动页面是绕不开的,广告页面说不定,但是不得不说,这两个界面都是经常要用到的。接下来我记录一下我的实现过程。项目架构为MVP。 那么先看看我们的需求和流程:(当然这也是可以根据... -
android应用开发之欢迎界面(AlphaAnimation)
2013-08-20 15:12:14第一帖:android应用开发之欢迎界面(AlphaAnimation) 题记:毕业将近两个月了,在公司单干android应用开发...此图可以是应用欢迎图片,也可以广告海报(服务可以推送广告),本帖仅讲第一种欢迎界面的实现。 一 -
Android---进入APP后的广告界面
2016-12-12 22:04:18在我们开发APP的过程中,难免会需要添加几个广告位,但怎样的广告位才算合理,还需要大家的共同推荐,这里我先介绍几个。 第一种 实现步骤: 1.方法private View adverView; //在主线程中调用该方法。 private ... -
android开发(二)android开发中遇到的一些基本常识
2013-07-18 15:03:42一:google的android android的四个常用组件 Activity:整个应用程序的界面构成的组件, Intent:应用程序之间传递数据的。...二:开发工具:eclipse,android sdk的安装和ADT插件 添加广告和买应用 -
【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
2014-01-12 00:00:24参考界面 : 携程app首页的广告栏, 使用ViewPager实现 自制页面效果图 : . 一. ViewPager适配页面问题 1. ViewPager出现的问题 ViewPager占满全屏问题 : ViewPager在XML中定义了android:layout_... -
Android 启动页面与广告页面的实现
2017-03-26 16:46:27在我们APP的开发过程中,启动页面是绕不开的,广告页面说不定,但是不得不说,这两个界面都是经常要用到的。接下来我记录一下我的实现过程。项目架构为MVP。 那么先看看我们的需求和流程:(当然这也是可以根据... -
Android应用开发:如何在App中植入广告?
2016-01-31 21:21:13Android牟利之道(一)--界面嵌入有米广告 Android牟利之道(二)--广告平台的介绍 Android牟利之道(三)--如何提高积分墙收入 Android牟利之道(四)--如何推广你的产品,即你的APP Android牟利之道(五)--... -
Android 基础 UI 界面设计
2017-11-12 11:48:56既然如此,我们就直接来写一个“Big Lottery”(利用计算机选号来产生乐透号码的程序),顺便发布到Google play上面赚取广告费。下面开始编程的第一项吧——UI界面设计。UI组件重要的话先讲,Android的所有UI组件都... -
【Android开发】范例2-开启新线程实现电子广告牌
2015-06-05 13:25:43利用之前学过的多线程处理技术,我们做一个开启新线程实现电子广告牌的项目 界面布局文件,加入ImageView图片控件,用于显示一个图片,一个TextView控件,用于显示广告说明语。 res/layout/main.xml: ... -
Android-在android应用中嵌入广告的方案
2011-02-24 16:29:00AdMob是一个比较成熟的移动平台 广告 商,其为android 和 iphone提供了非常方便的集成JAR包,使得开发 者可以在自己的应用 中很方便的嵌入其提供的广告 ,进而按照广告 展 示和点击次数付广告 费。这里用个... -
Android 开发最牛的图片轮播控件,基本什么都包含了。
2017-07-20 10:07:49现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页, 所以要实现循环还得需要自己去动手,我就把项目中的控件剔了出来,希望大家觉得有用。目前框架... -
android开发的各种bug-1
2015-09-17 11:09:56在分析代码的过程中突然想设计一个课程表,正好手上就有个超级课表,但是超级课表除了能根据学号导入课表外没什么好功能,周围基本没人用其他功能,于是我们就需要一个简洁的课表,1、无广告,2、无不必要的功能,3... -
Android开发之开发者头条APP(三)实现首页
2021-01-05 10:58:51从gif动态效果图中我们可以看出,最外层有三个tab(精选,订阅,发现),在精选界面顶部有一个轮播的图片广告,广告下面是一个精选文章列表。 二.外层三个tab实现 我这里用Viewpager实现的,可以左右滑动,灵活的... -
一个Android开发人员该知道的那些事
2019-02-24 13:45:51启动页 动画 广告 登陆 记住密码 自动登录 ... 三方登录 主页面 导航栏(搜索框和Menu菜单) ViewPage ...===================其他可能用到的====================== ...搜索框弹出界面的搜索 设置页(... -
Android 开发针对闪屏页会出现闪烁(先黑一下)的解决办法
2018-06-27 14:05:10每个Android应用启动之后都会出现一个Splash启动界面,显示显示广告信息或产品的LOGO、公司的LOGO或者开发者信息,可以播放一下视频和gif图等。如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让...
-
阅读笔记-JavaScript学习指南
-
银联反洗钱规则-标准版0329.xlsx
-
HTML结构与DOM树
-
thinkphp5.1博客后台实战视频
-
单片机完全学习课程全五季套餐
-
Truffle官网离线使用.rar
-
【文本分析】从《全职高手》聊起-python实现
-
基础回顾(九)—苏宁项目Rem
-
golang简单的socket交互案例
-
前端通信那些事儿
-
jdk-11.0.10_windows-x64_bin.zip
-
云计算基础-Linux系统管理员
-
前端性能优化
-
pyqt5 实现图像显示、缩放,平移
-
Linux环境PHP5.5以上连接SqlServer2008
-
极速读取Excel文件中的海量数据并写入到数据库的实现
-
Redis数据库入门与使用
-
如何下载高分辨率卫星影像
-
【Demo展示】在Unity中实践和整合得到的技术demo
-
B2Broker推出B2Trader匹配引擎的最新技术组件,并将其作为软件解决方案