編輯:關於Android編程
一般切換頁面,通過Intent,startActivity可以實現,但系統創建Activity是非常耗時的,如果對切換畫面時間有要求,只能用setContentView在同一activity下切換頁面,這樣做切換快,但會增加程序邏輯控制的難度。在工業產品中,任何一個參數都是參與競爭的籌碼,開機時間、畫面切換時間等都是重要衡量因素。一般切換頁面的時間在150ms以上,用戶就會有反應,也就是說眼睛可以分辨,要等一小下才能看到跳轉的頁面。
下面上一個android開發,用setContentView來切換頁面的例子,主要是程序部分,布局部分很簡單,每個布局裡都只有個按鈕,分別是“切換”和“返回”,在手機上測試,最短切換耗時2ms,穩定在6-8ms之間。
package com.example.learntest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
long time = (long)0.0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn_mainActivity = (Button)findViewById(R.id.btn_mainAc_1);
btn_mainActivity.setOnClickListener(new ButtonListen());
}
class ButtonListen implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
time = System.currentTimeMillis();
switch(v.getId()){
case R.id.btn_mainAc_1:
Jump2Second();
break;
case R.id.btn_secondA_1:
Jump2Main();
break;
default:
break;
}
}
} //按鈕監聽部分,為了方便閱讀和管理,我寫到一個類裡面,用case判斷。建議類似環境都這麼搞!
public void Jump2Second(){
setContentView(R.layout.activity_second);
long currTime = System.currentTimeMillis();
Toast.makeText(MainActivity.this,
"切換耗時:" +String.valueOf(currTime-time)+"毫秒",
Toast.LENGTH_SHORT).show();
Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);
btn_secondActivity.setOnClickListener(new ButtonListen());
} //跳轉到第二個頁面方法實現
public void Jump2Main(){
setContentView(R.layout.activity_main);
long currTime = System.currentTimeMillis();
Toast.makeText(MainActivity.this,
"切換耗時:" +String.valueOf(currTime-time)+"毫秒",
Toast.LENGTH_SHORT).show();
Button btn_mainActivity = (Button)findViewById(R.id.btn_mainAc_1);
btn_mainActivity.setOnClickListener(new ButtonListen());
}
} //返回到第一個頁面方法實現
至此,總結下,主要分為四部分:
1,onCreate方法裡,要設置監聽,進入後續的監聽循環
2,監聽方法實現,判斷是來自哪個按鈕,每個按鈕的R.id....都是唯一固定的
3,Jump2Second方法的實現,這裡首先將頁面設置成第二個layout,然後要再次findViewById一下
Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);
btn_secondActivity.setOnClickListener(new ButtonListen());
再次設置監聽。
這一點我也比較郁悶,跳轉過後,都要find一下。如果把這兩個button設置成全局變量,還是不中!設置成static變量也不中,跳轉頁面後,一定要再次findViewById一下,設置監聽,才能保證程序正常的邏輯。這塊有更方便的方法麼???知道如何解決的大神 指點一下後輩。。。。。。。。
4,Jump2Main的實現與之類似。不重復。
在B站或者其他視頻網站看視頻時,常常會打開彈幕效果,邊看節目邊看大家的吐槽。彈幕看起來很有意思,今天我們就來實現一個簡單的彈幕效果。 從直觀上,彈幕效果就是在一
微信很多小伙伴應該都玩過了,但有些小技巧估計有人還不知道,比如微信朋友圈怎麼發文字?朋友圈字體顏色可以改嗎?下面就讓小編來告訴大家! 微信朋友圈怎麼發文字
android中的json的讀取1.讀取Json文件中的json內容首先在將json文件放在目錄assets下:test.json {programmers:[
在做搜芽的過程中,發現那個外包人緣做的不行,因為啟動的時候會停頓,然後白屏一會,聯想到幾個月前我在我的三僚企業通信軟件裡面拉起9K-Mail的時候也會黑屏,所以決定學習一