Android 定期動態更改啟動頁
我們用android手機開啟一個app,會發現一個現象就是好多的app的首頁是定期變化的(說白了其實就是伺服器端的圖片定期被更新了,android端需要定期檢測並確定是否需要開啟執行緒進行下載並儲存起來),下面小編介紹一下自己是怎麼搞的,大家互相學習交流!
1.本次用到了java中SoftReference,即物件的軟引用。如果一個物件具有軟引用,記憶體空間足夠,垃圾回收器就不會回收它;如果記憶體空間不足了,就會回收這些物件的記憶體。只要垃圾回收器沒有回收它,該物件就可以被程式使用。軟引用可用來實現記憶體敏感的高 速快取。使用軟引用能防止記憶體洩露,增強程式的健壯性。
2.本次運用afinal_0.5_bin.jar向伺服器傳送或請求訊息;
一堆程式碼來襲:
[java] view plain copy print?- package com.demo.mouse.welcome;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Handler;
- import android.os.Message;
- import android.text.TextUtils;
- import android.util.Log;
-
import
- <pre name="code"class="java">package com.demo.mouse.welcome;
- import android.content.SharedPreferences;
- import android.graphics.Bitmap;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
-
import android.widget.ImageView;
- import android.widget.RelativeLayout;
- import net.tsz.afinal.FinalHttp;
- import net.tsz.afinal.http.AjaxCallBack;
- import org.json.JSONObject;
- import java.util.Timer;
- import java.util.TimerTask;
- /**
- * 啟動頁
- */
- publicclass MainActivity extends AppCompatActivity {
- privatestatic String TAG="MainActivity";
- private RelativeLayout welcome;
- private ImageView welocome_image;
- private SharedPreferences sps;
- private AsyncBitmapLoader aBitmapLoader;
- public Timer timer = new Timer();
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- sps = getSharedPreferences(Contant.SP, MODE_PRIVATE);
- aBitmapLoader=new AsyncBitmapLoader();
- welcome = (RelativeLayout) findViewById(R.id.welcome);
- welocome_image = (ImageView) findViewById(R.id.welocome_image);
- FinalHttp http = new FinalHttp();
- http.get(Contant.QDYURL, new AjaxCallBack<String>() {
- @Override
- publicvoid onFailure(Throwable t, int errorNo, String strMsg) {
- super.onFailure(t, errorNo, strMsg);
- Log.i("pig", 1 + errorNo+"----"+strMsg);
- initImage();
- }
- @Override
- publicvoid onSuccess(String json) {
- super.onSuccess(json);
- Log.i("pig", 2 + "");
- try {
- JSONObject jsons = new JSONObject(json + "");
- Log.i(TAG,"jsons" + jsons);
- String res = jsons.optString("img_url");
- sps.edit().putString(Contant.SP, res).commit();
- Log.i("start image url is", res);
- Bitmap bitmap = aBitmapLoader.loadBitMap(
- welocome_image, res, new AsyncBitmapLoader.ImageCallBack() {
- @Override
- publicvoid imageLoad(ImageView imageView,
- Bitmap bitmap) {
- // TODO Auto-generated method stub
- welocome_image.setImageBitmap(bitmap);
- }
- });
- if (bitmap == null) {
- welocome_image.setImageResource(R.mipmap.ic_launcher);
- } else {
- welocome_image.setImageBitmap(bitmap);
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- init();
- }
- privatevoid initImage() {
- // TODO Auto-generated method stub
- Bitmap bitmap = aBitmapLoader.loadBitMap(welocome_image,
- sps.getString(Contant.SP, ""), new AsyncBitmapLoader.ImageCallBack() {
- @Override
- publicvoid imageLoad(ImageView imageView, Bitmap bitmap) {
- // TODO Auto-generated method stub
- welocome_image.setImageBitmap(bitmap);
- }
- });
- if (bitmap == null) {
- welocome_image.setImageResource(R.mipmap.ic_launcher);
- } else {
- welocome_image.setImageBitmap(bitmap);
- }
- }
- /**
- * 啟動頁動畫
- */
- privatevoid init() {
- TimerTask task = new TimerTask() {
- @Override
- publicvoid run() {
-
相關推薦
Android 定期動態更改啟動頁
我們用android手機開啟一個app,會發現一個現象就是好多的app的首頁是定期變化的(說白了其實就是伺服器端的圖片定期被更新了,android端需要定期檢測並確定是否需要開啟執行緒進行下載並
Android Studio 動態更改圖片
先建立圖片 用Android Studio自帶的工具建立: 先選1,2是圖片的名字,3是選擇內建圖示 然後在佈局檔案裡建立lmageView控制元件,並在java中註冊。 //控制元件名.setImageResource(R.mipmap.圖示名) kg02
Android 啟動頁優化
Android 啟動頁是一個 App 的門面, 一開啟就顯示,所以一個 App 的好與壞,使用者體驗都與啟動頁有很大的聯絡,所以,啟動頁的優化也事關重要,因此記錄一下關於啟動頁的優化方案 啟動的時候出現黑屏
Xamarin.Android 啟動頁
開啟軟體的時候相當慢,會有白屏顯示,這樣的使用者體驗效果不好,所以需要增加一個啟動頁來過渡。步驟如下: 第一步:根據自己需求找到一個png圖片,用於啟動展示,放在Drawable 資料夾下,我這裡命名為Loading.png。 第二步:在Drawable 資料夾下建立 splashscreen.xml
Android啟動頁黑屏及最優解決方案
前言 相信做過Android的朋友都知道,當一個APP啟動時,介面會首先展示一個白屏或者黑屏,然後再進入歡迎頁,稍作停留最後進入APP主頁。那麼這個黑屏或者白屏到底是怎麼一回事呢?它的最好的解決方案應該是怎樣的呢?今天我們認真的討論一下這個小問題。 點選獲取本次專案的demo 歷史原因
react-native 啟動頁設定(android)
使用第三方外掛:react-native-splash-screen 下載地址:https://www.npmjs.com/package/react-native-splash-screen 第一步:安裝下載外掛 1、npm i react-native-splash-screen
android開發系列教程(一)啟動頁
1.啟動頁延時跳轉+沉浸狀態列+啟動頁圖片全屏 public class SplashActivity extends AppCompatActivity { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
Android 啟動頁設定app icon 解決開始啟動黑屏
1.主題設定 <activity android:name=".xx.SplashActivity" android:screenOrientation="portrait" android:theme="@style/LauncherThem
Android APP去除啟動頁出現的黑色閃現
Android APP在啟動的時候,會有預設的一個黑色預啟動背景,如果啟動頁是亮色的,十分影響視覺。我們只需要設定SplashActivity的Theme就可以了。方案有三種: 設定一張圖 <style name="Theme.AppStartLoad" parent="a
Android動態更改TextView的字型大小
需求: 需要動態更改TextView內容字型的大小,比如設定TextView只有一行,寬度只有200dp,內容超過這個之後就縮小字型顯示,只能能將字型都顯示完全;也就是動態更改TextView的字型大小,當TextView的內容比較多時縮小顯示,當Tex
Android開發之啟動頁與廣告頁
在我們APP的開發過程中,啟動頁面是繞不開的,廣告頁面說不定,但是不得不說,這兩個介面都是經常要用到的。接下來我記錄一下我的實現過程。專案架構為MVP。 那麼先看看我們的需求和流程:(當然這也是可以根據實際需求改動的) 展示 logo 頁面3秒 服務端可
Android 啟動頁黑屏/白屏
黑白屏問題的原因 activity生命週期先執行onResume()方法,如果此方法中執行了耗時操作,阻塞了主執行緒,很明顯就會出現黑白屏問題.還有就是即使onResume()方法沒有執行還是會出現黑白屏問題,原因就是onCreate()中的下面這行程式碼是個非同步任務,載入介面需要短暫的時間
Android 快速啟動頁
網上方案一大堆 我找了個好使的 1.定義Style <style name="SplashTheme" parent="AppTheme" > <!-- 歡迎頁背景引用剛才寫好的 --> <item name="android:w
Android App 啟動頁(Splash)黑/白閃屏現象產生原因與解決辦法
驚鴻一瞥 微信的啟動頁,相信大家都不陌生。 不知道大家有沒有發現一個現象,微信每次啟動的時候,是直接進入這個啟動頁面。 我的意思是,很多應用,往往會先白屏停頓一下後再進入啟動頁面(Splash)。為了印證這一點,我把手機上所有的App都點了一遍。選幾個例子
Android設定啟動頁
首先在style裡面加入 <style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar"> <!--<item name="android:background">@m
android 啟動頁白屏解決方案
最近在做專案的時候,突然遇到啟動頁白屏不顯示的問題,首先想到的就是圖片大小,仔細檢視 果然,美工給了我一張超大的圖片,我也沒細看就替換上去了,汗! 好吧,既然發現了問題,果斷替換掉圖片,但是,特麼還是白屏(你特麼在逗我!),幾番百度,谷歌,得到如下解決方案:
【Android】android開發之splash閃屏頁的四種實現方式,啟動頁的實現教程。
作者:程式設計師小冰,GitHub主頁:https://github.com/QQ986945193 首先給大家看一下今天實現的效果圖(其他三種都差不太多底下詳細介紹): 這個啟動頁實現的方法是四種,兩種是利用handler,其它兩種是利用了動畫的方式。 具體給大家貼一下
關於android app啟動頁白屏黑屏和華為手機啟動頁圖片跳躍閃屏的問題
1、產生原因 關於點選app圖標出現白屏和黑屏的產生原因,首先要說的就是app的啟動模式:冷啟動(cold start),暖啟動(warm start),熱啟動(lukewarm start)。冷啟動:是指程序從無到有的過程。因為要進行頁面初始化,所以相對
Android 動態Tab分頁效果實現
當前專案使用的是TabHost+Activity進行分頁,目前要做個報表功能,需要在一個Tab頁內進行Activity的切換。比方說我有4個Tab頁分別為Tab1,Tab2,Tab3,Tab4,現在的需求是需要將Tab1內的Activity動態切換。找了很多資料最終使用了ActivityGroup解
Android 啟動優化之啟動頁白屏的真正原理
網上有許多解釋 大牛A說:應用啟動的時候有一個空白的Window,View繪製到另一個Window上,在繪製完畢之後,後一個Window去替換掉前一個Window。 B說:setContentView耗時太久,所以白屏 大牛A之所以會這樣認為,是因為他看過原始碼或者