欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android中怎么通過(guò)自定義view實(shí)現(xiàn)進(jìn)度條加載效果

Android中怎么通過(guò)自定義view實(shí)現(xiàn)進(jìn)度條加載效果,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、順城ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的順城網(wǎng)站制作公司

分析圖:

Android中怎么通過(guò)自定義view實(shí)現(xiàn)進(jìn)度條加載效果

代碼如下:

package com.example.dotloadview;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.View;
/**
 * Created by zhouguizhi on 6/18/15.
 */
public class DotLoadProgressView extends View {
  private boolean isStart = false;
  private int dotIndex =0;//點(diǎn)下面的角標(biāo)
  private int dotNumber = 0;
  private Paint mPaint;
  private int paddingTop = 50;
  private int paddingBottom = 50;
  private int paddingLeft = 30;
  private int paddingRight = 30;
  private Handler mHandler = new Handler();
  private long DELAY_TIME = 300;
  private Bitmap bitmap;
  private int itemDotSpace = 10;//二個(gè)點(diǎn)之間的距離
  private Bitmap moveBitmap ;
  private Runnable mRunnable = new Runnable() {
    @Override
    public void run() {
      if (dotNumber != 0){
        dotIndex = (dotIndex + 1) % dotNumber;
      }
      invalidate();
      mHandler.postDelayed(mRunnable, DELAY_TIME);
    }
  };
  public DotLoadProgressView(Context context, AttributeSet attrs) {
    super(context, attrs);
    moveBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.active_dot);
    init();
  }
  private void init() {
    mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mPaint.setStyle(Paint.Style.FILL);
    mPaint.setDither(true);
    mPaint.setAntiAlias(true);
  }
  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    for(int i=0;i<dotNumber;i++){
      canvas.drawBitmap(bitmap,paddingLeft+i*itemDotSpace+bitmap.getWidth()*i,paddingTop,mPaint);
    }
    if(isStart){
      canvas.drawBitmap(moveBitmap,paddingLeft+dotIndex*itemDotSpace+moveBitmap.getWidth()*dotIndex,paddingTop,mPaint);
    }
  }
  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
    bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.inactive_dot);
    setMeasuredDimension(parentWidth,bitmap.getHeight()+paddingTop+paddingBottom);
    int widthWithoutPadding = parentWidth - paddingLeft - paddingRight;
    dotNumber = calculateDotsNumber(widthWithoutPadding);
  }
  private int calculateDotsNumber(int width) {
    int number = (width / (itemDotSpace + bitmap.getWidth()));
    return number;
  }
  public void startProgress() {
    isStart = true;
    dotIndex = -1;
    mHandler.removeCallbacks(mRunnable);
    mHandler.post(mRunnable);
  }
  public void stopProgress() {
    isStart = false;
    mHandler.removeCallbacks(mRunnable);
    invalidate();
  }
  @Override
  protected void onAttachedToWindow() {
    super.onAttachedToWindow();
    startProgress();
  }
  @Override
  protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    stopProgress();
  }
}

布局代碼:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <com.example.dotloadview.DotLoadProgressView
    android:id="@+id/progress1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />
</RelativeLayout>

關(guān)于Android中怎么通過(guò)自定義view實(shí)現(xiàn)進(jìn)度條加載效果問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

分享名稱:Android中怎么通過(guò)自定義view實(shí)現(xiàn)進(jìn)度條加載效果
分享URL:http://aaarwkj.com/article20/jeecjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、動(dòng)態(tài)網(wǎng)站App開發(fā)、網(wǎng)站收錄、搜索引擎優(yōu)化、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国产亚洲精品久在线| 91福利社区欧美大片| 久久亚洲中文字幕精品熟女| 国产性做爰片免费网站| 蜜臀av网站在线播放| 国产一区二区精品久久久女同| 精品欧美不卡在线播放| 日本熟妇一区二区三区在线视频 | 91白丝视频在线观看| 中文日本强暴人妻另类视频| 亚洲婷婷久久一区二区| 人妻日韩字幕一区二区| 日日爱欧美精品亚洲成| 国产乱来视频在线观看| 亚洲日本香蕉视频观看视频| 久久精品亚洲欧美激情| 欧美日韩亚洲激情一区| 国产区av中文字幕在线观看| 中文日韩av在线免费播放| 這裏隻有无码人妻久久| 久久男女激情免费视频| 亚洲精品主播一区二区三区 | 国产在线视频不卡一线路| 国产黄色大片一级久久| 国产经典午夜福利在线| 欧美亚洲国产日韩熟女| 久久av天堂在线观看| 日韩精品福利片午夜免费| 青青草原免费在线观看| 国产乱肥老妇国产一区二| 久久久久久成人亚洲| 成人性生活黄色三级视频| 蜜臀av一区二区在线观看| 日本女优中文字幕久久| 国产区一区二区三在线播放| 国产亚洲精品久在线| 国产欧美色日韩综合在线| 日韩x级av免费在线观看| 另类视频在线免费观看| 欧美午夜福利视频电影| 看看美女阴逼毛茸茸的|