標籤:android style http 使用 io ar 2014 art
-
在Android中,一般來說一個應用會存在幾十個頁面,並且一個應用一般也會使用一個特定的主題,其中的頁面的風格也是一致的,並且頁面中的動畫效果、頁面的轉場效果等也應該保持同樣的風格,那麼就需要一個基類,來完成頁面的基礎設定,這就是所謂的基類。 介面統一管理原因 當應用中的介面達到一定數量級時,如幾十個介面,便於專案管理提高介面的處理速度避免由於多Activity導致的問題介面統一管理的基礎當應用中的介面達到一定數量級時,為了能夠讓使用者更容易操作上手,產品設計時會將介面顯示風格進行統一。 案例驅動: public abstract class BaseSetupActivity extends Activity { // 該抽象類別,作為四個設定嚮導的基類,定義共同的方法 private SharedPreferences mSharedPreferences; private static String TAG = "BaseSetupActivity"; // 聲明一個手勢辨識器 private GestureDetector mGestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mSharedPreferences = getSharedPreferences("config", MODE_PRIVATE); // 初始化手勢辨識器 // 2.初始化手勢辨識器 // Basic Default Base Simple mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { /** * 劃屏對應的方法. e1 手指第一次觸控螢幕幕 e2 手指離開螢幕瞬間 velocityX 水平方向移動的速度 * <span style="text-decoration: underline;">px</span>/s velocityY 豎直方向移動的速度 */ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (Math.abs(velocityX) < 100) { Log.i(TAG, "移動的太慢,動作不合法"); return true; } if ((e2.getRawX() - e1.getRawX()) > 200) { showPre(null); return true; } if ((e1.getRawX() - e2.getRawX()) > 200) { showNext(null); return true; } // 其實返回的就是false return super.onFling(e1, e2, velocityX, velocityY); } }); // 子類中初始化布局 initView(); } // 設定當前的view布局 public abstract void initView(); // 顯示下一個介面 public abstract void showNext(View view); // 顯示上一個介面 public abstract void showPre(View view); // 3.activity被觸摸的時候調用的方法 , 需要在這個裡面讓手勢辨識器 生效 @Override public boolean onTouchEvent(MotionEvent event) { // 讓手勢辨識器 生效 mGestureDetector.onTouchEvent(event); return super.onTouchEvent(event); } }分析:案例中主要實現的就是在同一主題下的頁面的轉場效果進行統一,初始化了手勢辨識器,並且讓手勢辨識器生效。接下來看一下繼承自這個基類的一個頁面的設定 public class Mobile_safeActivity1 extends BaseSetupActivity { private static String <span style="text-decoration: underline;">TAG</span> = "Mobile_safeActivity1"; @Override public void initView() { setContentView(R.layout.mobile_safeactivity1); } @Override public void showNext(View view) { Intent intent = new Intent(this, Mobile_safeActivity2.class); startActivity(intent); finish(); // 設定切換的動畫效果,該方法將會在程式執行startActivity以及finish()方法的時候進行調用 overridePendingTransition(R.anim.tran_next_in, R.anim.tran_next_out); } @Override public void showPre(View view) { } }分析:非常明顯這個Mobile_safeActivity1繼承自前面的基類BaseSetupActivity,因此當手指在螢幕上進行滑動的時候,將會觸發showNext()和showPre()兩個方法,並且在切換時通過overriderPendingTransition()產生螢幕滑動的轉場效果,這裡可以根據實際需求進行設定,並且這個方法將會在執行finish()方法後自行調用。而在showPre()中沒有寫任何的內容是因為沒有上一頁。 摘自http://www.2cto.com/kf/201403/288116.html