編輯:關於Android編程
啟動界面的效果圖:
實現的原理:在一個線程中讓幾幅圖片進行循環顯示,實現了動畫的效果。
主要的實現類LoadingView是自定義控件,繼承了ImageView,實現了Runnable接口 :
package wht.android.loading; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.ImageView; public class LoadingView extends ImageView implements Runnable { private boolean isStop = false; private int[] imageIds; private int index = 0; private int length = 1; public LoadingView(Context context) { this(context, null); } public LoadingView(Context context, AttributeSet attrs) { super(context, attrs); } public void setImageIds(int[] imageId) { this.imageIds = imageId; if(imageIds != null && imageIds.length > 0) { length = imageIds.length; } } @Override protected void onDetachedFromWindow() { // TODO Auto-generated method stub super.onDetachedFromWindow(); isStop = true; } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); if(imageIds != null && imageIds.length > 0) { this.setImageResource(imageIds[index]); } } @Override public void run() { while(!isStop) { //計算要顯示圖片的位置 index = ++index % length; postInvalidate(); try { Thread.sleep(400); } catch (InterruptedException e) { e.printStackTrace(); } } } //啟動圖片輪換線程 public void startAnim() { new Thread(this).start(); } }
package wht.android.loading; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { private LoadingView main_imageview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); main_imageview = (LoadingView) findViewById(R.id.main_imageview); initLoadingImages(); new Thread() { @Override public void run() { main_imageview.startAnim(); } }.start(); } private void initLoadingImages() { int[] imageIds = new int[6]; imageIds[0] = R.drawable.loader_frame_1; imageIds[1] = R.drawable.loader_frame_2; imageIds[2] = R.drawable.loader_frame_3; imageIds[3] = R.drawable.loader_frame_4; imageIds[4] = R.drawable.loader_frame_5; imageIds[5] = R.drawable.loader_frame_6; main_imageview.setImageIds(imageIds); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Android 簡單的動畫效果有Animtion 類提供 1.在XML中實現動畫效果;2.在java代碼中實現動畫效果。 動畫相關的屬性 表一:SET屬性 名稱
JSON的定義: 一種輕量級的數據交換格式,具有良好的可讀和便於快速編寫的特性。業內主流技術為其提供了完整的解決方案(有點類似於正則表達式 ,獲得了當今大部分語言的支持)
(一)概述本章給大家帶來的是Android中的Menu(菜單),而在Android中的菜單有如下幾種:OptionMenu:選項菜單,android中最常見的菜單,通過M
思路分析:1、在onMeasure中測量整個View的寬和高後,設置寬高2、獲取我們res的圖片資源後,在ondraw方法中進行繪制圓形圖片3、通過Handler發送Ru