1. 程式人生 > >android啟動頁廣告歡迎介面

android啟動頁廣告歡迎介面

這個廣告介面主要做的就是倒計時功能,當然,中間也出現了一些問題,秉著遇到問題解決問題的原則,慢慢的做出來了,可能也不太完善,先這樣。

之前做的app啟動頁與主介面做在一個activity中了,通過visibility屬性加上動畫效果做的啟動頁,新增的廣告頁如果也寫在一起,想想頭就大了,果斷單獨又提出了一個acitivity,將啟動頁與廣告頁放在了一起。

遇到的問題:

1.狀態列的問題——啟動頁的image的顏色跟廣告頁的顏色差距太大,用的同一個image,狀態列不能自動變換顏色:

解決:將狀態列顏色至為透明。

2.定時器的問題——在點選完廣告連結之後,定時器還在走,之後自動跳轉頁面:

解決:handler.removeMessages(0);

3.Bitmap傳值的問題:

開始將啟動頁與廣告頁做在了兩個activity中,本想要的效果是在啟動頁時開始下載圖片,當圖片下載完成時跳轉到廣告頁顯示,這就涉及到了在兩個activity中傳遞Bitmap的問題,我直接用

intent.putExtra("BITMAP",bitmap);

在取值的頁面

Bitmap bitmap = getIntent().getParcelableExtra("BITMAP");

也不報錯,資料大小也能獲取到,但就是顯示不出來資料,網上說是不能傳大於40k的,具體也沒研究,就改成了在一個activity中顯示了。

傳遞Bitmap參考:http://blog.csdn.net/xueerfei008/article/details/23046341

以下附上程式碼:(刪除了請求資料的部分)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/welcome"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/welcome_logo" />

    <LinearLayout
        android:id="@+id/lin_clock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="25dp"
        android:orientation="horizontal"
        android:visibility="gone" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="廣告倒計時:"
            android:textColor="@color/app_color"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="5"
            android:textColor="@color/app_color"
            android:textSize="20sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="秒"
            android:textColor="@color/app_color"
            android:textSize="20sp" />
    </LinearLayout>

</FrameLayout>
java程式碼:
**
 * app初始化頁面
 */
@ParentViewInject(R.layout.activity_first)
public class FirstActivity extends MyActivity {
	public static String ISADV = "isAdv";
	@ChildViewInject(value = R.id.welcome, tag = "遮蓋層")
	private ImageView mWelcome;
	@ChildViewInject(value = R.id.textView, tag = "倒計時")
	private TextView textView;
	@ChildViewInject(value = R.id.lin_clock, tag = "倒計時")
	private LinearLayout lin_clock;


	public static String ADV_IMAGE_NAME = "adv_image";

	// 是否顯示廣告頁
	private String flag;
	// 跳轉的url
	private String url;
	// 廣告秒數
	private int count;
	// 廣告頁本地地址
	private String filePath;
	private Bitmap bitmap;
	private Animation animation;
	/**
	 * 做定時器的handler
	 */
	private Handler handler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			if (msg.what == 0) {
				textView.setText(getCount() + "");
				handler.sendEmptyMessageDelayed(0, 1000);
				animation.reset();
				textView.startAnimation(animation);
			}


		};


	};
	/**
	 * 宣告處理動畫的handler
	 */
	private Handler handler_animation = new Handler() {


		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);
			switch (msg.what) {
			case 1:
				lin_clock.setVisibility(View.VISIBLE);
				mWelcome.setImageBitmap(bitmap);
				animation = AnimationUtils.loadAnimation(FirstActivity.this,
						R.anim.animation_text);
				handler.sendEmptyMessageDelayed(0, 1000);
				break;


			case 2:
				break;
			}
		}


	};


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		setTranslucentStatus();
		super.onCreate(savedInstanceState);
		//初始化的時候取資料
		//flag =;
		//url = ;
		//count = ;
		//filePath ;
		bitmap = BitmapFactory.decodeFile(filePath);
 //為了讓app啟動頁正常顯示,加了延時-該延時正常是下載圖片的時間,這裡將圖片下載到了本地,每次啟動時顯示的都是上次載入的
new Handler().postDelayed(new Runnable() {

public void run() {

if ("1".equals(flag) && bitmap != null) {
handler_animation.sendEmptyMessage(1);
if (!TextUtils.isEmpty(url)) {//廣告圖片點選之後的響應
mWelcome.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,
WebActivity.class);
intent.putExtra(
HomeWebFragment.EXTRA_PARAM_URL, url);
intent.putExtra(ISADV, true);
IntentUtil.startNewActivityWithData(
(Activity) FirstActivity.this, intent);
handler.removeMessages(0);//關鍵-將定時器remove掉,不然跳轉之後還在記時
finish();
}
});
}
} else {
turnMainAnXinActivity();
}
}

}, 1000);

}

/**
* 跳轉到主介面
*/
private void turnMainAnXinActivity() {
Intent intent = new Intent(this, MainAnXinActivity.class);
startActivity(intent);
finish();
}


private int getCount() {
count--;
if (count == 0) {
turnMainAnXinActivity();
}
return count;
}


/**
* 廣告頁狀態列設定為透明(在setContentView()方法之前使用)
*/
private void setTranslucentStatus() {
// 4.4以上支援
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// 透明狀態列
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// 透明導航欄
// getWindow().addFlags(
// WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// SystemStatusManager tintManager = new SystemStatusManager(this);
// tintManager.setStatusBarTintEnabled(true);
// // 設定狀態列的顏色
// tintManager.setStatusBarTintResource(R.color.trans);
// getWindow().getDecorView().setFitsSystemWindows(true);
}
}
}



相關推薦

android啟動廣告歡迎介面

這個廣告介面主要做的就是倒計時功能,當然,中間也出現了一些問題,秉著遇到問題解決問題的原則,慢慢的做出來了,可能也不太完善,先這樣。 之前做的app啟動頁與主介面做在一個activity中了,通過visibility屬性加上動畫效果做的啟動頁,新增的廣告頁如果也寫在一起,想

Ionic2:建立App啟動滑動歡迎介面

效果如下,圖片來自網路 本文例子和上圖稍有不同,主要功能如下: 每滑動一下展示一張全屏圖片;滑動到最後一頁才出現啟動按鈕;歡迎介面只在第一次安裝啟動時出現。下面就讓我們一步一步實現這個功能: 1.建立應用: 使用Ionic2建立應用非常簡單,只需在V1的命令後跟上--v2即可,如下: ionic star

Android專案中的歡迎介面和引導:動畫和ViewPager

每個安卓的應用都會有歡迎介面和引導頁,引導頁一般只是在第一次進入或者更新應用進入的時候才會出現。我這裡使用另外一種更加靈活和擴充套件性的方式來寫這個小Demo,首先看一下效果圖: 這個Demo可擴充套件的地方在於:引導頁和底部的小圓點可以在不更改佈局檔案的

Android 啟動優化

       Android  啟動頁是一個 App 的門面, 一開啟就顯示,所以一個 App 的好與壞,使用者體驗都與啟動頁有很大的聯絡,所以,啟動頁的優化也事關重要,因此記錄一下關於啟動頁的優化方案   啟動的時候出現黑屏

Xamarin.Android 啟動

  開啟軟體的時候相當慢,會有白屏顯示,這樣的使用者體驗效果不好,所以需要增加一個啟動頁來過渡。步驟如下: 第一步:根據自己需求找到一個png圖片,用於啟動展示,放在Drawable 資料夾下,我這裡命名為Loading.png。 第二步:在Drawable 資料夾下建立 splashscreen.xml

Android啟動黑屏及最優解決方案

前言 相信做過Android的朋友都知道,當一個APP啟動時,介面會首先展示一個白屏或者黑屏,然後再進入歡迎頁,稍作停留最後進入APP主頁。那麼這個黑屏或者白屏到底是怎麼一回事呢?它的最好的解決方案應該是怎樣的呢?今天我們認真的討論一下這個小問題。 點選獲取本次專案的demo 歷史原因

Android 啟動設定app icon 解決開始啟動黑屏

1.主題設定 <activity android:name=".xx.SplashActivity" android:screenOrientation="portrait" android:theme="@style/LauncherThem

Android 啟動黑屏/白屏

黑白屏問題的原因 activity生命週期先執行onResume()方法,如果此方法中執行了耗時操作,阻塞了主執行緒,很明顯就會出現黑白屏問題.還有就是即使onResume()方法沒有執行還是會出現黑白屏問題,原因就是onCreate()中的下面這行程式碼是個非同步任務,載入介面需要短暫的時間

android 啟動白屏解決方案

最近在做專案的時候,突然遇到啟動頁白屏不顯示的問題,首先想到的就是圖片大小,仔細檢視 果然,美工給了我一張超大的圖片,我也沒細看就替換上去了,汗! 好吧,既然發現了問題,果斷替換掉圖片,但是,特麼還是白屏(你特麼在逗我!),幾番百度,谷歌,得到如下解決方案:

扣丁音樂(一)——閃屏SplashActivity(歡迎介面)

一丶閃屏頁簡介 閃屏頁/啟動頁/指引頁/歡迎介面,顧名思義也就是出現出現幾面後自動跳轉到主頁面,起到指引或歡迎作用。在畢業論文上我是這樣寫的閃屏頁功能:1.歡迎 2.指引 3.廣告 4.為其他頁面的

android啟動製作

      現在app在啟動的時候都是有啟動頁的,但是直接在啟動Activity中加入背景圖是會先白屏,在載入到背景圖片,下面介紹一種無白屏的啟動頁。      1.刪除啟動介面的xml佈局,刪除setContentView。註釋掉Activity中這行程式碼    

關於android啟動優化建議

android啟動頁優化        啟動頁也稱之為閃屏頁,就是在android應用第一次啟動時展現的頁面,但它並不是引導頁(一般是應用首次安裝或者更新的時候出現的頁面)。 啟動頁黑白閃爍:         在剛啟動應用時,往往會出現黑白閃屏現象,這是由於Them

android 啟動、引導

              自己整理的一套 啟動頁+引導頁,文章內有判斷第一次顯示引導頁 //  啟動頁 public class SplashActivity extends Activity {boolean isFirstIn = false;private

Android開發之啟動廣告

 在我們APP的開發過程中,啟動頁面是繞不開的,廣告頁面說不定,但是不得不說,這兩個介面都是經常要用到的。接下來我記錄一下我的實現過程。專案架構為MVP。    那麼先看看我們的需求和流程:(當然這也是可以根據實際需求改動的)  展示 logo 頁面3秒 服務端可

Android基礎--程式第一次啟動歡迎跳到引導,下次再啟動直接從歡迎跳轉到主頁

這個在很多的開發中,都會用到,具體的實現方式就是在本地儲存一個標記值。用Handler進行延時操作,在onCreate()裡面,程式碼如下: new Handler(new Handler.Callb

Android全屏啟動進入非全屏activity介面部分內容被狀態列遮住

本文的重點不是講解如何設定全屏和取消全屏,相信大家遇到過從全屏啟動頁進入非全屏介面部分內容被狀態列擋住的問題,在非全屏的地方加上 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN); 就可以解決這個問題

Android啟動歡迎介面前黑屏或白屏完美解決辦法

我們只需要將歡迎頁面的主題設定為透明就可以了 首先可以在style.xml中定義一個主題,該主題繼承我們app當前的主題,然後新增一個透明屬性,比如我們app當前的主題為AppTheme,那麼定義的主題如下: <style name="Theme.AppStartL

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啟動顯示空白介面的問題,自定義進入軟體前的背景圖片

1.新建xml檔案 設定其背景圖片 android:background="@mipmap/initmap" <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=