編輯:Android開發教程
最近,制作一個app,需要模擬一個電池電量的進度條,根據電量多少來設置百分比,進度條不斷上下滾動,就像平時手機充電一樣的電池電量進度條。我就自定義view實現了電量進度條。修改圖片就可以達到自己想要的效果
一、自定義View,Battery.java,循環刷新界面,兩張圖片上下滾動,達到不斷向右移動的效果。挺有意思的
package com.example.battery; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.View; public class Battery extends View { public float currentX = 80; public float currentY = 80; private float secondY = 80; private Paint mPaint = new Paint(); private Context mContext; private Handler mHandler; private Bitmap mBmp; private int speedTime = 20; private float with = 200; private float height = 50; private float percentage = 0.5f; public Battery(Context context) { super(context); this.mContext = context; } // 查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/ public Battery(Context context, AttributeSet set) { super(context, set); this.mContext = context; init(); } public void onDraw(Canvas canvas) { super.onDraw(canvas); with = this.getWidth(); height = this.getHeight(); mPaint.setColor(Color.BLUE); Resources res = mContext.getResources(); BitmapDrawable bmpDraw = (BitmapDrawable) res .getDrawable(R.drawable.loading_pic); mBmp = bmpDraw.getBitmap(); canvas.clipRect(0, 0, with*percentage, height); canvas.drawBitmap(mBmp, 0, currentY, mPaint); canvas.drawBitmap(mBmp, 0, secondY, mPaint); } private void init() { percentage = 0; mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1: currentX ++; currentY ++; if (mBmp != null && currentY > mBmp.getHeight()){ currentY = -mBmp.getHeight(); } if (mBmp != null){ secondY = currentY+mBmp.getHeight(); if (secondY >= mBmp.getHeight()){ secondY = currentY-mBmp.getHeight(); } } percentage = percentage + 0.003f; if (percentage > 1){ percentage = 0; } // 每次計算後都發送消息進入下一次循環,並刷新界面 mHandler.sendEmptyMessageDelayed(1, speedTime); postInvalidate(); break; } super.handleMessage(msg); postInvalidate(); } }; // 首次循環刷新界面 mHandler.sendEmptyMessageDelayed(1, speedTime); } }
Android數據儲存之File文件儲存數據 一.存儲在內部還是外部? AndroidManifest.xml中manifest標簽下有一個屬性andro
Save & Restore State與之前的例子Android ApiDemo示例解析(9):App->Activity->Persistent
Gallery 是Android官方提供的一個View容器類,繼承於AbsSpinner類,用於實現頁面滑動效果。從上面的繼承關系可 以看出,AbsSpinner類繼承自
Android網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要提供了兩種方式,Http