技术标签: 异步加载网络图片 android 欢迎页 android Splash Screen android 加载网络图片
Splash Screen加载网络图片可以用两种方法,一般用在开启app时显示公司logo,广告,或者欢迎页,介绍两种方法来处理:异步加载和子线程处理。 第一种是异步加载的方法 在onCreate中设置 /**异步加载*/ new FetchDataTask().execute(url); 然后编写异步加载的方法 /**异步加载*/ public class FetchDataTask extends AsyncTask<String,Void,Bitmap>{ //执行前调用 @Override protected void onPreExecute() { super.onPreExecute(); } //执行后台任务 @Override protected Bitmap doInBackground(String... strings) { Bitmap bitmap=null; try { bitmap= Utils.getBitmap(url); } catch (Exception e) { e.printStackTrace(); } return bitmap; } //任务完成时调用 @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imageView.setImageBitmap(bitmap); } } 完整代码 package com.dxsport; import com.dxsport.common.Utils; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; public class SplashScreenActivity extends Activity { private String url = "http://tupian.enterdesk.com/2015/saraxuss/04/17/gou/1/3.jpg"; private ImageView imageView; Bitmap bitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏 setContentView(R.layout.splash_screen); imageView = (ImageView) findViewById(R.id.adImage); /**异步加载*/ new FetchDataTask().execute(url); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent i = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(i); SplashScreenActivity.this.finish(); } },3000); } /**异步加载*/ public class FetchDataTask extends AsyncTask<String,Void,Bitmap>{ //执行前调用 @Override protected void onPreExecute() { super.onPreExecute(); } //执行后台任务 @Override protected Bitmap doInBackground(String... strings) { Bitmap bitmap=null; try { bitmap= Utils.getBitmap(url); } catch (Exception e) { e.printStackTrace(); } return bitmap; } //任务完成时调用 @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); imageView.setImageBitmap(bitmap); } } } 第二种是添加子线程的方法 在onCreate中设置 // 开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI new Thread(networkTask).start(); 然后编写子线程方法 Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle data = msg.getData(); Bitmap bitmap = data.getParcelable("bitmap"); // UI界面的更新等相关操作 imageView.setImageBitmap(bitmap); } }; /** * 网络操作相关的子线程 */ Runnable networkTask = new Runnable() { @Override public void run() { // 在这里进行 http request.网络请求相关操作 Message msg = new Message(); Bundle data = new Bundle(); Bitmap bitmap = Utils.getBitmap(url); data.putParcelable("bitmap", bitmap); msg.setData(data); handler.sendMessage(msg); } }; 完整代码 package com.dxsport; import com.dxsport.common.Utils; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; public class SplashScreenActivity extends Activity { private String url = "http://tupian.enterdesk.com/2015/saraxuss/04/17/gou/1/3.jpg"; private ImageView imageView; Bitmap bitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏 setContentView(R.layout.splash_screen); imageView = (ImageView) findViewById(R.id.adImage); // 开启一个子线程,进行网络操作,等待有返回结果,使用handler通知UI new Thread(networkTask).start(); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent i = new Intent(SplashScreenActivity.this, MainActivity.class); startActivity(i); SplashScreenActivity.this.finish(); } },3000); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle data = msg.getData(); Bitmap bitmap = data.getParcelable("bitmap"); // UI界面的更新等相关操作 imageView.setImageBitmap(bitmap); } }; /** * 网络操作相关的子线程 */ Runnable networkTask = new Runnable() { @Override public void run() { // 在这里进行 http request.网络请求相关操作 Message msg = new Message(); Bundle data = new Bundle(); Bitmap bitmap = Utils.getBitmap(url); data.putParcelable("bitmap", bitmap); msg.setData(data); handler.sendMessage(msg); } }; } Utils 类 package com.dxsport.common; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class Utils { /**通过传入的图片地址,获取图片*/ public static Bitmap getBitmap(String url){ Bitmap bitmap = null; try { HttpURLConnection connection= (HttpURLConnection) (new URL(url)).openConnection(); InputStream is=connection.getInputStream(); bitmap= BitmapFactory.decodeStream(is); } catch (Exception e) { e.printStackTrace(); } return bitmap; } } splash_screen.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/adImage" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
入行没几年的小码农,近期学习Kotlin,做一份笔记记录,此文依据《Kotlin实战》这本书的流程记录,部分示例内容均摘自《Kotlin实战》,记下自己的理解,本篇记录在Kotlin中我们如何对运算符进行重载,另外还有一些Kotlin中的约定。 //上一篇 新手上路,Kotlin学习笔记(五)---Kotlin中的类型系统一、运算符的重载 有时候我们会...
request headersAccept-Language: 支持的语言类型,类似于一个数组,每种语言对应一个权重(0-1的数字),一般用来做多语言用Content-Type: 请求体的类型application/x-www-form-urlencoded: a=1&b=2application/json: {"a": "1", "b": "2"}multipart/f...
自己项目中遇到了一个获取oaid的需求,看了下该作者的demoAndroid获取OAID博客地址感谢作者的同时自己也对这个demo进行了优化,结尾附上自己的项目github地址1 什么是OAID?用来做什么的?随着大数据和人工智能时代的到来,数据的价值也逐渐增加,移动终端设备标识码,如国际移动设备识别码(IMEI)、Wi-Fi MAC地址、SIM卡国际移动用户识别码(IMSI)和蓝牙地址等...
Bigtable为Google设计的一个分布式结构化数据存储系统,用来处理Google的海量数据。Google内包括Web索引、Google地球等项目都在使用Bigtable存储数据。尽管这些应用需求差异很大,但是Bigtable还是提供了一个灵活的、高性能的解决方案。-------------------------------------------------------------
541. 反转字符串 II题目链接来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string-ii/submissions/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目描述题目分析注意:有括号的得加括号class Solution {public: string reverseStr(string s, int k) { int n = s.size
一、查询glibc等级首先查看当前系统的glibc等级,使用命令:strings /lib64/libc.so.6 |grep GLIBC (任何目录下都可以执行,建议在根目录下执行)[外链图片转存中…(img-o9IYnHk2-1588083897786)]...
静默安装Oracle数据库10g篇===========================================================================以下是在Linux系统上静默安装Oracle数据库10g的实践过程,主要分为以下两个步骤:Step 1.静默安装Oracle数据库10g软件1. 使用OUI录制响应文件,记录安装过程执行以下命令,然后在OUI中根据提...
_________________________________________________________________________________________________________main函数【进程】结束,会做那些事情?exit/returnexit(0)/return 0 ; 正常返回exit(-1)/return -1;异常返回=====
NX二次开发-NXOPEN C#方式创建草图,添加约束,标注尺寸
1.下载git,下载成功后鼠标右击出现以下内容说明下载并安装成功。2.配置项目上传显示的上传者名称git config --global user.name "xxx"3.配置项目上传显示的上传者邮箱git config --global user.email "[email protected]"4.配置使用SSH公钥连接连接ssh-keygen -t rsa -C "[email protected]" (此处的邮箱是登录码云使用的邮箱)三次enter后完成绑定,成功会显示如下内容:
&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div i