Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android軟件啟動動畫及動畫結束後跳轉的實現方法

Android軟件啟動動畫及動畫結束後跳轉的實現方法

編輯:關於Android編程

本文實例講述了Android軟件啟動動畫及動畫結束後跳轉的實現方法。分享給大家供大家參考,具體如下:

自己寫了個小程序,軟件啟動時,先顯示幾張圖片,每3秒顯示一張,圖片顯示完跳轉到首頁

1. 圖片輪播使用Gallery,用法很簡單

GalleryAdapter adapter = new GalleryAdapter(this, mIds);
mGallery.setAdapter(adapter);

GalleryAdapter是自定義適配器

public class GalleryAdapter extends BaseAdapter {
  private Context mContext;
  private int mImageHeight;
  private int[] mIds;
  public GalleryAdapter(Context context, int[] ids) {
   this.mContext = context;
   this.mIds = ids;
   init();
  }
  private void init() {
   mImageHeight = px2dip(mContext, getScreenHeight(MainActivity.this));
  }
  @Override
  public int getCount() {
   return mIds.length;
  }
  @Override
  public Object getItem(int position) {
   return position;
  }
  @Override
  public long getItemId(int position) {
   return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   final ImageView imageView = new ImageView(mContext);
   if (position < mIds.length) {
    int imageId = mIds[position];
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);//設置圖片居中
    imageView.setLayoutParams(new Gallery.LayoutParams(
      Gallery.LayoutParams.FILL_PARENT, mImageHeight));
    Bitmap bitmap = readBitMap(mContext, imageId);//用節省內存的方式加載圖片,防止OOM
    imageView.setImageBitmap(bitmap);
    overridePendingTransition(R.anim.push_in, R.anim.push_out);//圖片切換動畫
   }
   return imageView;
  }
}

2. 設置圖片切換時間使用Timer定時器

Timer timer = new Timer();
timer.schedule(task, 3000, 3000);// 每3秒切換一張圖片
private TimerTask task = new TimerTask() {
  @Override
  public void run() {
   Message message = new Message();
   message.what = 0;
   index = mGallery.getSelectedItemPosition();
   handler.sendMessage(message);
   index++;
   if (index == mIds.length - 1) {
    this.cancel();
    MainActivity.this.finish();
    Intent intent = new Intent(MainActivity.this, Test.class);
    startActivity(intent);
   }
  }
};
//不能直接在task中更新UI,所以用handler向主線程發送消息
private Handler handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   super.handleMessage(msg);
   switch (msg.what) {
   case 0:
    mGallery.setSelection(index);
    break;
   default:
    break;
   }
  }
};

3. 讀取本地資源圖片

public static Bitmap readBitMap(Context context, int resId) {
  BitmapFactory.Options opt = new BitmapFactory.Options();
  opt.inPreferredConfig = Bitmap.Config.RGB_565;
  opt.inPurgeable = true;
  opt.inInputShareable = true;
  // 獲取資源圖片
  InputStream is = context.getResources().openRawResource(resId);
  return BitmapFactory.decodeStream(is, null, opt);
}

完整實例代碼代碼點擊此處本站下載。

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved