+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 276576f1..a1cceb93 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -3,9 +3,8 @@
-
+
-
@@ -13,7 +12,13 @@
-
+
+
+
+
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 75318f72..5d199810 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -27,22 +27,6 @@
-
-
-
-
-
-
-
-
-
-
- Android
-
-
-
-
-
diff --git a/app/src/main/java/com/arialyy/simple/activity/MainActivity.java b/app/src/main/java/com/arialyy/simple/activity/MainActivity.java
index 3dc93dc0..f117a160 100644
--- a/app/src/main/java/com/arialyy/simple/activity/MainActivity.java
+++ b/app/src/main/java/com/arialyy/simple/activity/MainActivity.java
@@ -1,22 +1,22 @@
package com.arialyy.simple.activity;
import android.support.v7.widget.RecyclerView;
-import butterknife.Bind;
+
import com.arialyy.simple.R;
import com.arialyy.simple.base.BaseActivity;
import com.arialyy.simple.databinding.ActivityMainBinding;
+import butterknife.Bind;
+
/**
* Created by Lyy on 2016/9/27.
*/
public class MainActivity extends BaseActivity {
- @Bind(R.id.list)
- RecyclerView mList;
-
- @Override protected int setLayoutId() {
- return R.layout.activity_main;
- }
+ @Bind(R.id.list) RecyclerView mList;
+ @Override protected int setLayoutId() {
+ return R.layout.activity_main;
+ }
}
diff --git a/app/src/main/java/com/arialyy/simple/activity/SimpleTestActivity.java b/app/src/main/java/com/arialyy/simple/activity/SimpleTestActivity.java
index 3f103496..a891db06 100644
--- a/app/src/main/java/com/arialyy/simple/activity/SimpleTestActivity.java
+++ b/app/src/main/java/com/arialyy/simple/activity/SimpleTestActivity.java
@@ -10,167 +10,166 @@ import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
-import butterknife.Bind;
+
import com.arialyy.downloadutil.util.DownLoadUtil;
import com.arialyy.downloadutil.util.Util;
import com.arialyy.simple.R;
import com.arialyy.simple.base.BaseActivity;
import com.arialyy.simple.databinding.ActivitySimpleBinding;
+
import java.net.HttpURLConnection;
+import butterknife.Bind;
+
public class SimpleTestActivity extends BaseActivity {
- private static final int DOWNLOAD_PRE = 0x01;
- private static final int DOWNLOAD_STOP = 0x02;
- private static final int DOWNLOAD_FAILE = 0x03;
- private static final int DOWNLOAD_CANCEL = 0x04;
- private static final int DOWNLOAD_RESUME = 0x05;
- private static final int DOWNLOAD_COMPLETE = 0x06;
- private ProgressBar mPb;
- private String mDownloadUrl =
- "http://static.gaoshouyou.com/d/12/0d/7f120f50c80d2e7b8c4ba24ece4f9cdd.apk";
- private DownLoadUtil mUtil;
- private Button mStart, mStop, mCancel;
- private TextView mSize;
- @Bind(R.id.toolbar) Toolbar toolbar;
+ private static final int DOWNLOAD_PRE = 0x01;
+ private static final int DOWNLOAD_STOP = 0x02;
+ private static final int DOWNLOAD_FAILE = 0x03;
+ private static final int DOWNLOAD_CANCEL = 0x04;
+ private static final int DOWNLOAD_RESUME = 0x05;
+ private static final int DOWNLOAD_COMPLETE = 0x06;
+ private ProgressBar mPb;
+ private String mDownloadUrl = "http://static.gaoshouyou.com/d/12/0d/7f120f50c80d2e7b8c4ba24ece4f9cdd.apk";
+ private DownLoadUtil mUtil;
+ private Button mStart, mStop, mCancel;
+ private TextView mSize;
+ @Bind(R.id.toolbar) Toolbar toolbar;
- private Handler mUpdateHandler = new Handler() {
- @Override public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case DOWNLOAD_PRE:
- mSize.setText(Util.formatFileSize((Long) msg.obj));
- mStart.setEnabled(false);
- break;
- case DOWNLOAD_FAILE:
- Toast.makeText(SimpleTestActivity.this, "下载失败", Toast.LENGTH_SHORT).show();
- break;
- case DOWNLOAD_STOP:
- Toast.makeText(SimpleTestActivity.this, "暂停下载", Toast.LENGTH_SHORT).show();
- mStart.setText("恢复");
- mStart.setEnabled(true);
- break;
- case DOWNLOAD_CANCEL:
- mPb.setProgress(0);
- Toast.makeText(SimpleTestActivity.this, "取消下载", Toast.LENGTH_SHORT).show();
- mStart.setEnabled(true);
- mStart.setText("开始");
- break;
- case DOWNLOAD_RESUME:
- Toast.makeText(SimpleTestActivity.this, "恢复下载,恢复位置 ==> " + Util.formatFileSize((Long) msg.obj),
- Toast.LENGTH_SHORT).show();
- mStart.setEnabled(false);
- break;
- case DOWNLOAD_COMPLETE:
- Toast.makeText(SimpleTestActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
- mStart.setEnabled(true);
- mCancel.setEnabled(false);
- mStop.setEnabled(false);
- break;
- }
+ private Handler mUpdateHandler = new Handler() {
+ @Override public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case DOWNLOAD_PRE:
+ mSize.setText(Util.formatFileSize((Long) msg.obj));
+ mStart.setEnabled(false);
+ break;
+ case DOWNLOAD_FAILE:
+ Toast.makeText(SimpleTestActivity.this, "下载失败", Toast.LENGTH_SHORT).show();
+ break;
+ case DOWNLOAD_STOP:
+ Toast.makeText(SimpleTestActivity.this, "暂停下载", Toast.LENGTH_SHORT).show();
+ mStart.setText("恢复");
+ mStart.setEnabled(true);
+ break;
+ case DOWNLOAD_CANCEL:
+ mPb.setProgress(0);
+ Toast.makeText(SimpleTestActivity.this, "取消下载", Toast.LENGTH_SHORT).show();
+ mStart.setEnabled(true);
+ mStart.setText("开始");
+ break;
+ case DOWNLOAD_RESUME:
+ Toast.makeText(SimpleTestActivity.this, "恢复下载,恢复位置 ==> " + Util.formatFileSize((Long) msg.obj), Toast.LENGTH_SHORT).show();
+ mStart.setEnabled(false);
+ break;
+ case DOWNLOAD_COMPLETE:
+ Toast.makeText(SimpleTestActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
+ mStart.setEnabled(true);
+ mCancel.setEnabled(false);
+ mStop.setEnabled(false);
+ break;
+ }
+ }
+ };
+
+ @Override protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ init();
}
- };
- @Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- init();
- }
-
- @Override protected int setLayoutId() {
- return R.layout.activity_simple;
- }
-
- @Override protected void init(Bundle savedInstanceState) {
- super.init(savedInstanceState);
- setSupportActionBar(toolbar);
- init();
- }
-
- private void init() {
- mPb = (ProgressBar) findViewById(R.id.progressBar);
- mStart = (Button) findViewById(R.id.start);
- mStop = (Button) findViewById(R.id.stop);
- mCancel = (Button) findViewById(R.id.cancel);
- mSize = (TextView) findViewById(R.id.size);
- mUtil = new DownLoadUtil();
- }
-
- public void onClick(View view) {
- switch (view.getId()) {
- case R.id.start:
- start();
- break;
- case R.id.stop:
- stop();
- break;
- case R.id.cancel:
- cancel();
- break;
+ @Override protected int setLayoutId() {
+ return R.layout.activity_simple;
}
- }
- private void start() {
- mUtil.download(this, mDownloadUrl,
- Environment.getExternalStorageDirectory().getPath() + "/test.apk",
- new DownLoadUtil.DownloadListener() {
- long fileSize = 1;
+ @Override protected void init(Bundle savedInstanceState) {
+ super.init(savedInstanceState);
+ setSupportActionBar(toolbar);
+ init();
+ }
- @Override public void onPreDownload(HttpURLConnection connection) {
- super.onPreDownload(connection);
- mPb.setMax(100);
- fileSize = connection.getContentLength();
- mUpdateHandler.obtainMessage(DOWNLOAD_PRE, fileSize).sendToTarget();
- }
+ private void init() {
+ mPb = (ProgressBar) findViewById(R.id.progressBar);
+ mStart = (Button) findViewById(R.id.start);
+ mStop = (Button) findViewById(R.id.stop);
+ mCancel = (Button) findViewById(R.id.cancel);
+ mSize = (TextView) findViewById(R.id.size);
+ mUtil = new DownLoadUtil();
+ }
- @Override public void onStart(long startLocation) {
- super.onStart(startLocation);
- }
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.start:
+ start();
+ break;
+ case R.id.stop:
+ stop();
+ break;
+ case R.id.cancel:
+ cancel();
+ break;
+ }
+ }
- @Override public void onChildResume(long resumeLocation) {
- super.onChildResume(resumeLocation);
- }
+ private void start() {
+ mUtil.download(this, mDownloadUrl, Environment.getExternalStorageDirectory().getPath() + "/test.apk", new DownLoadUtil.DownloadListener() {
+ long fileSize = 1;
- @Override public void onChildComplete(long finishLocation) {
- super.onChildComplete(finishLocation);
- }
+ @Override public void onPreDownload(HttpURLConnection connection) {
+ super.onPreDownload(connection);
+ mPb.setMax(100);
+ fileSize = connection.getContentLength();
+ mUpdateHandler.obtainMessage(DOWNLOAD_PRE, fileSize).sendToTarget();
+ }
- @Override public void onProgress(long currentLocation) {
- super.onProgress(currentLocation);
- mPb.setProgress((int) (currentLocation * 100 / fileSize));
- }
+ @Override public void onStart(long startLocation) {
+ super.onStart(startLocation);
+ }
- @Override public void onStop(long stopLocation) {
- super.onStop(stopLocation);
- mUpdateHandler.obtainMessage(DOWNLOAD_STOP).sendToTarget();
- }
+ @Override public void onChildResume(long resumeLocation) {
+ super.onChildResume(resumeLocation);
+ }
- @Override public void onCancel() {
- super.onCancel();
- mUpdateHandler.obtainMessage(DOWNLOAD_CANCEL).sendToTarget();
- }
+ @Override public void onChildComplete(long finishLocation) {
+ super.onChildComplete(finishLocation);
+ }
- @Override public void onResume(long resumeLocation) {
- super.onResume(resumeLocation);
- mUpdateHandler.obtainMessage(DOWNLOAD_RESUME, resumeLocation).sendToTarget();
- }
+ @Override public void onProgress(long currentLocation) {
+ super.onProgress(currentLocation);
+ mPb.setProgress((int) (currentLocation * 100 / fileSize));
+ }
- @Override public void onFail() {
- super.onFail();
- mUpdateHandler.obtainMessage(DOWNLOAD_FAILE).sendToTarget();
- }
+ @Override public void onStop(long stopLocation) {
+ super.onStop(stopLocation);
+ mUpdateHandler.obtainMessage(DOWNLOAD_STOP).sendToTarget();
+ }
- @Override public void onComplete() {
- super.onComplete();
- mUpdateHandler.obtainMessage(DOWNLOAD_COMPLETE).sendToTarget();
- }
+ @Override public void onCancel() {
+ super.onCancel();
+ mUpdateHandler.obtainMessage(DOWNLOAD_CANCEL).sendToTarget();
+ }
+
+ @Override public void onResume(long resumeLocation) {
+ super.onResume(resumeLocation);
+ mUpdateHandler.obtainMessage(DOWNLOAD_RESUME, resumeLocation).sendToTarget();
+ }
+
+ @Override public void onFail() {
+ super.onFail();
+ mUpdateHandler.obtainMessage(DOWNLOAD_FAILE).sendToTarget();
+ }
+
+ @Override public void onComplete() {
+ super.onComplete();
+ mUpdateHandler.obtainMessage(DOWNLOAD_COMPLETE).sendToTarget();
+ }
});
- }
+ }
- private void stop() {
- mUtil.stopDownload();
- }
+ private void stop() {
+ mUtil.stopDownload();
+ }
- private void cancel() {
- mUtil.cancelDownload();
- }
+ private void cancel() {
+ mUtil.cancelDownload();
+ }
}
diff --git a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java b/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java
index 949b3cf6..72e2b0e3 100644
--- a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java
+++ b/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java
@@ -4,69 +4,72 @@ import android.content.Context;
import android.util.SparseArray;
import android.view.View;
import android.widget.Button;
-import butterknife.Bind;
+
import com.arialyy.absadapter.common.AbsHolder;
import com.arialyy.absadapter.recycler_view.AbsRVAdapter;
import com.arialyy.downloadutil.entity.DownloadEntity;
import com.arialyy.simple.R;
import com.arialyy.simple.widget.HorizontalProgressBarWithNumber;
+
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import butterknife.Bind;
+
/**
* Created by Lyy on 2016/9/27.
* 下载列表适配器
*/
public class DownloadAdapter extends AbsRVAdapter {
- private static final String TAG = "DownloadAdapter";
- private Map mProgress = new HashMap<>();
- private SparseArray mPositions = new SparseArray<>();
+ private static final String TAG = "DownloadAdapter";
+ private Map mProgress = new HashMap<>();
+ private SparseArray mPositions = new SparseArray<>();
- public DownloadAdapter(Context context, List data) {
- super(context, data);
- int i = 0;
- for (DownloadEntity entity : data) {
- mProgress.put(entity.getDownloadUrl(), entity.getCurrentProgress());
- mPositions.append(i, entity.getDownloadUrl());
- i++;
+ public DownloadAdapter(Context context, List data) {
+ super(context, data);
+ int i = 0;
+ for (DownloadEntity entity : data) {
+ mProgress.put(entity.getDownloadUrl(), entity.getCurrentProgress());
+ mPositions.append(i, entity.getDownloadUrl());
+ i++;
+ }
}
- }
- @Override protected MyHolder getViewHolder(View convertView, int viewType) {
- return new MyHolder(convertView);
- }
-
- @Override protected int setLayoutId(int type) {
- return R.layout.item_download;
- }
-
- public synchronized void setProgress(String url, long currentPosition) {
- mProgress.put(url, currentPosition);
- notifyItemChanged(indexItem(url));
- }
-
- private int indexItem(String url) {
- return mPositions.indexOfValue(url);
- }
-
- @Override protected void bindData(MyHolder holder, int position, DownloadEntity item) {
- //holder.progress.setProgress(item.getCurrentProgress());
- long size = item.getFileSize();
- int current = 0;
- if (size == 0){
- current = 0;
+ @Override protected MyHolder getViewHolder(View convertView, int viewType) {
+ return new MyHolder(convertView);
}
- current = (int) (mProgress.get(item.getDownloadUrl()) * 100 / item.getFileSize());
- holder.progress.setProgress(current);
- }
- class MyHolder extends AbsHolder {
- @Bind(R.id.progressBar) HorizontalProgressBarWithNumber progress;
- @Bind(R.id.bt) Button bt;
-
- public MyHolder(View itemView) {
- super(itemView);
+ @Override protected int setLayoutId(int type) {
+ return R.layout.item_download;
+ }
+
+ public synchronized void setProgress(String url, long currentPosition) {
+ mProgress.put(url, currentPosition);
+ notifyItemChanged(indexItem(url));
+ }
+
+ private int indexItem(String url) {
+ return mPositions.indexOfValue(url);
+ }
+
+ @Override protected void bindData(MyHolder holder, int position, DownloadEntity item) {
+ //holder.progress.setProgress(item.getCurrentProgress());
+ long size = item.getFileSize();
+ int current = 0;
+ if (size == 0) {
+ current = 0;
+ }
+ current = (int) (mProgress.get(item.getDownloadUrl()) * 100 / item.getFileSize());
+ holder.progress.setProgress(current);
+ }
+
+ class MyHolder extends AbsHolder {
+ @Bind(R.id.progressBar) HorizontalProgressBarWithNumber progress;
+ @Bind(R.id.bt) Button bt;
+
+ public MyHolder(View itemView) {
+ super(itemView);
+ }
}
- }
}
diff --git a/app/src/main/java/com/arialyy/simple/base/BaseActivity.java b/app/src/main/java/com/arialyy/simple/base/BaseActivity.java
index 6a1013bd..74a5a1f9 100644
--- a/app/src/main/java/com/arialyy/simple/base/BaseActivity.java
+++ b/app/src/main/java/com/arialyy/simple/base/BaseActivity.java
@@ -2,17 +2,18 @@ package com.arialyy.simple.base;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
+
import com.arialyy.frame.core.AbsActivity;
/**
* Created by Lyy on 2016/9/27.
*/
public abstract class BaseActivity extends AbsActivity {
- @Override protected void dataCallback(int result, Object data) {
+ @Override protected void dataCallback(int result, Object data) {
- }
+ }
- @Override protected void init(Bundle savedInstanceState) {
- super.init(savedInstanceState);
- }
+ @Override protected void init(Bundle savedInstanceState) {
+ super.init(savedInstanceState);
+ }
}
diff --git a/app/src/main/java/com/arialyy/simple/base/BaseApplication.java b/app/src/main/java/com/arialyy/simple/base/BaseApplication.java
index df28de99..c497cb97 100644
--- a/app/src/main/java/com/arialyy/simple/base/BaseApplication.java
+++ b/app/src/main/java/com/arialyy/simple/base/BaseApplication.java
@@ -1,14 +1,15 @@
package com.arialyy.simple.base;
import android.app.Application;
+
import com.arialyy.frame.core.AbsFrame;
/**
* Created by Lyy on 2016/9/27.
*/
public class BaseApplication extends Application {
- @Override public void onCreate() {
- super.onCreate();
- AbsFrame.init(this);
- }
+ @Override public void onCreate() {
+ super.onCreate();
+ AbsFrame.init(this);
+ }
}
diff --git a/app/src/main/java/com/arialyy/simple/base/BaseModule.java b/app/src/main/java/com/arialyy/simple/base/BaseModule.java
index 87994558..055446ac 100644
--- a/app/src/main/java/com/arialyy/simple/base/BaseModule.java
+++ b/app/src/main/java/com/arialyy/simple/base/BaseModule.java
@@ -1,13 +1,14 @@
package com.arialyy.simple.base;
import android.content.Context;
+
import com.arialyy.frame.module.AbsModule;
/**
* Created by Lyy on 2016/9/27.
*/
-public class BaseModule extends AbsModule{
- public BaseModule(Context context) {
- super(context);
- }
+public class BaseModule extends AbsModule {
+ public BaseModule(Context context) {
+ super(context);
+ }
}
diff --git a/app/src/main/java/com/arialyy/simple/widget/HorizontalProgressBarWithNumber.java b/app/src/main/java/com/arialyy/simple/widget/HorizontalProgressBarWithNumber.java
index daf84fe6..ae3bf9c8 100644
--- a/app/src/main/java/com/arialyy/simple/widget/HorizontalProgressBarWithNumber.java
+++ b/app/src/main/java/com/arialyy/simple/widget/HorizontalProgressBarWithNumber.java
@@ -7,174 +7,157 @@ import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.ProgressBar;
+
import com.arialyy.simple.R;
public class HorizontalProgressBarWithNumber extends ProgressBar {
- private static final int DEFAULT_TEXT_SIZE = 10;
- private static final int DEFAULT_TEXT_COLOR = 0XFFFC00D1;
- private static final int DEFAULT_COLOR_UNREACHED_COLOR = 0xFFd3d6da;
- private static final int DEFAULT_HEIGHT_REACHED_PROGRESS_BAR = 2;
- private static final int DEFAULT_HEIGHT_UNREACHED_PROGRESS_BAR = 2;
- private static final int DEFAULT_SIZE_TEXT_OFFSET = 10;
- /**
- * painter of all drawing things
- */
- protected Paint mPaint = new Paint();
- /**
- * color of progress number
- */
- protected int mTextColor = DEFAULT_TEXT_COLOR;
- /**
- * size of text (sp)
- */
- protected int mTextSize = sp2px(DEFAULT_TEXT_SIZE);
- /**
- * offset of draw progress
- */
- protected int mTextOffset = dp2px(DEFAULT_SIZE_TEXT_OFFSET);
- /**
- * height of reached progress bar
- */
- protected int mReachedProgressBarHeight = dp2px(DEFAULT_HEIGHT_REACHED_PROGRESS_BAR);
- /**
- * color of reached bar
- */
- protected int mReachedBarColor = DEFAULT_TEXT_COLOR;
- /**
- * color of unreached bar
- */
- protected int mUnReachedBarColor = DEFAULT_COLOR_UNREACHED_COLOR;
- /**
- * height of unreached progress bar
- */
- protected int mUnReachedProgressBarHeight = dp2px(DEFAULT_HEIGHT_UNREACHED_PROGRESS_BAR);
- /**
- * view width except padding
- */
- protected int mRealWidth;
- protected boolean mIfDrawText = true;
- protected static final int VISIBLE = 0;
+ private static final int DEFAULT_TEXT_SIZE = 10;
+ private static final int DEFAULT_TEXT_COLOR = 0XFFFC00D1;
+ private static final int DEFAULT_COLOR_UNREACHED_COLOR = 0xFFd3d6da;
+ private static final int DEFAULT_HEIGHT_REACHED_PROGRESS_BAR = 2;
+ private static final int DEFAULT_HEIGHT_UNREACHED_PROGRESS_BAR = 2;
+ private static final int DEFAULT_SIZE_TEXT_OFFSET = 10;
+ /**
+ * painter of all drawing things
+ */
+ protected Paint mPaint = new Paint();
+ /**
+ * color of progress number
+ */
+ protected int mTextColor = DEFAULT_TEXT_COLOR;
+ /**
+ * size of text (sp)
+ */
+ protected int mTextSize = sp2px(DEFAULT_TEXT_SIZE);
+ /**
+ * offset of draw progress
+ */
+ protected int mTextOffset = dp2px(DEFAULT_SIZE_TEXT_OFFSET);
+ /**
+ * height of reached progress bar
+ */
+ protected int mReachedProgressBarHeight = dp2px(DEFAULT_HEIGHT_REACHED_PROGRESS_BAR);
+ /**
+ * color of reached bar
+ */
+ protected int mReachedBarColor = DEFAULT_TEXT_COLOR;
+ /**
+ * color of unreached bar
+ */
+ protected int mUnReachedBarColor = DEFAULT_COLOR_UNREACHED_COLOR;
+ /**
+ * height of unreached progress bar
+ */
+ protected int mUnReachedProgressBarHeight = dp2px(DEFAULT_HEIGHT_UNREACHED_PROGRESS_BAR);
+ /**
+ * view width except padding
+ */
+ protected int mRealWidth;
+ protected boolean mIfDrawText = true;
+ protected static final int VISIBLE = 0;
- public HorizontalProgressBarWithNumber(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public HorizontalProgressBarWithNumber(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- obtainStyledAttributes(attrs);
- mPaint.setTextSize(mTextSize);
- mPaint.setColor(mTextColor);
- }
-
- @Override protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int width = MeasureSpec.getSize(widthMeasureSpec);
- int height = measureHeight(heightMeasureSpec);
- setMeasuredDimension(width, height);
- mRealWidth = getMeasuredWidth() - getPaddingRight() - getPaddingLeft();
- }
-
- private int measureHeight(int measureSpec) {
- int result = 0;
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
- if (specMode == MeasureSpec.EXACTLY) {
- result = specSize;
- } else {
- float textHeight = (mPaint.descent() - mPaint.ascent());
- result = (int) (getPaddingTop() + getPaddingBottom() + Math.max(
- Math.max(mReachedProgressBarHeight, mUnReachedProgressBarHeight), Math.abs(textHeight)));
- if (specMode == MeasureSpec.AT_MOST) {
- result = Math.min(result, specSize);
- }
+ public HorizontalProgressBarWithNumber(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
}
- return result;
- }
- /**
- * get the styled attributes
- */
- private void obtainStyledAttributes(AttributeSet attrs) {
- // init values from custom attributes
- final TypedArray attributes =
- getContext().obtainStyledAttributes(attrs, R.styleable.HorizontalProgressBarWithNumber);
- mTextColor =
- attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_text_color,
- DEFAULT_TEXT_COLOR);
- mTextSize = (int) attributes.getDimension(
- R.styleable.HorizontalProgressBarWithNumber_progress_text_size, mTextSize);
- mReachedBarColor =
- attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_reached_color,
- mTextColor);
- mUnReachedBarColor =
- attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_unreached_color,
- DEFAULT_COLOR_UNREACHED_COLOR);
- mReachedProgressBarHeight = (int) attributes.getDimension(
- R.styleable.HorizontalProgressBarWithNumber_progress_reached_bar_height,
- mReachedProgressBarHeight);
- mUnReachedProgressBarHeight = (int) attributes.getDimension(
- R.styleable.HorizontalProgressBarWithNumber_progress_unreached_bar_height,
- mUnReachedProgressBarHeight);
- mTextOffset = (int) attributes.getDimension(
- R.styleable.HorizontalProgressBarWithNumber_progress_text_offset, mTextOffset);
- int textVisible =
- attributes.getInt(R.styleable.HorizontalProgressBarWithNumber_progress_text_visibility,
- VISIBLE);
- if (textVisible != VISIBLE) {
- mIfDrawText = false;
+ public HorizontalProgressBarWithNumber(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ obtainStyledAttributes(attrs);
+ mPaint.setTextSize(mTextSize);
+ mPaint.setColor(mTextColor);
}
- attributes.recycle();
- }
- @Override protected synchronized void onDraw(Canvas canvas) {
- canvas.save();
- canvas.translate(getPaddingLeft(), getHeight() / 2);
- boolean noNeedBg = false;
- float radio = getProgress() * 1.0f / getMax();
- float progressPosX = (int) (mRealWidth * radio);
- String text = getProgress() + "%";
- // mPaint.getTextBounds(text, 0, text.length(), mTextBound);
- float textWidth = mPaint.measureText(text);
- float textHeight = (mPaint.descent() + mPaint.ascent()) / 2;
- if (progressPosX + textWidth > mRealWidth) {
- progressPosX = mRealWidth - textWidth;
- noNeedBg = true;
+ @Override protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ int width = MeasureSpec.getSize(widthMeasureSpec);
+ int height = measureHeight(heightMeasureSpec);
+ setMeasuredDimension(width, height);
+ mRealWidth = getMeasuredWidth() - getPaddingRight() - getPaddingLeft();
}
- // draw reached bar
- float endX = progressPosX - mTextOffset / 2;
- if (endX > 0) {
- mPaint.setColor(mReachedBarColor);
- mPaint.setStrokeWidth(mReachedProgressBarHeight);
- canvas.drawLine(0, 0, endX, 0, mPaint);
- }
- // draw progress bar
- // measure text bound
- if (mIfDrawText) {
- mPaint.setColor(mTextColor);
- canvas.drawText(text, progressPosX, -textHeight, mPaint);
- }
- // draw unreached bar
- if (!noNeedBg) {
- float start = progressPosX + mTextOffset / 2 + textWidth;
- mPaint.setColor(mUnReachedBarColor);
- mPaint.setStrokeWidth(mUnReachedProgressBarHeight);
- canvas.drawLine(start, 0, mRealWidth, 0, mPaint);
- }
- canvas.restore();
- }
- /**
- * dp 2 px
- */
- protected int dp2px(int dpVal) {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal,
- getResources().getDisplayMetrics());
- }
+ private int measureHeight(int measureSpec) {
+ int result = 0;
+ int specMode = MeasureSpec.getMode(measureSpec);
+ int specSize = MeasureSpec.getSize(measureSpec);
+ if (specMode == MeasureSpec.EXACTLY) {
+ result = specSize;
+ } else {
+ float textHeight = (mPaint.descent() - mPaint.ascent());
+ result = (int) (getPaddingTop() + getPaddingBottom() + Math.max(Math.max(mReachedProgressBarHeight, mUnReachedProgressBarHeight), Math.abs(textHeight)));
+ if (specMode == MeasureSpec.AT_MOST) {
+ result = Math.min(result, specSize);
+ }
+ }
+ return result;
+ }
- /**
- * sp 2 px
- */
- protected int sp2px(int spVal) {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal,
- getResources().getDisplayMetrics());
- }
+ /**
+ * get the styled attributes
+ */
+ private void obtainStyledAttributes(AttributeSet attrs) {
+ // init values from custom attributes
+ final TypedArray attributes = getContext().obtainStyledAttributes(attrs, R.styleable.HorizontalProgressBarWithNumber);
+ mTextColor = attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_text_color, DEFAULT_TEXT_COLOR);
+ mTextSize = (int) attributes.getDimension(R.styleable.HorizontalProgressBarWithNumber_progress_text_size, mTextSize);
+ mReachedBarColor = attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_reached_color, mTextColor);
+ mUnReachedBarColor = attributes.getColor(R.styleable.HorizontalProgressBarWithNumber_progress_unreached_color, DEFAULT_COLOR_UNREACHED_COLOR);
+ mReachedProgressBarHeight = (int) attributes.getDimension(R.styleable.HorizontalProgressBarWithNumber_progress_reached_bar_height, mReachedProgressBarHeight);
+ mUnReachedProgressBarHeight = (int) attributes.getDimension(R.styleable.HorizontalProgressBarWithNumber_progress_unreached_bar_height, mUnReachedProgressBarHeight);
+ mTextOffset = (int) attributes.getDimension(R.styleable.HorizontalProgressBarWithNumber_progress_text_offset, mTextOffset);
+ int textVisible = attributes.getInt(R.styleable.HorizontalProgressBarWithNumber_progress_text_visibility, VISIBLE);
+ if (textVisible != VISIBLE) {
+ mIfDrawText = false;
+ }
+ attributes.recycle();
+ }
+
+ @Override protected synchronized void onDraw(Canvas canvas) {
+ canvas.save();
+ canvas.translate(getPaddingLeft(), getHeight() / 2);
+ boolean noNeedBg = false;
+ float radio = getProgress() * 1.0f / getMax();
+ float progressPosX = (int) (mRealWidth * radio);
+ String text = getProgress() + "%";
+ // mPaint.getTextBounds(text, 0, text.length(), mTextBound);
+ float textWidth = mPaint.measureText(text);
+ float textHeight = (mPaint.descent() + mPaint.ascent()) / 2;
+ if (progressPosX + textWidth > mRealWidth) {
+ progressPosX = mRealWidth - textWidth;
+ noNeedBg = true;
+ }
+ // draw reached bar
+ float endX = progressPosX - mTextOffset / 2;
+ if (endX > 0) {
+ mPaint.setColor(mReachedBarColor);
+ mPaint.setStrokeWidth(mReachedProgressBarHeight);
+ canvas.drawLine(0, 0, endX, 0, mPaint);
+ }
+ // draw progress bar
+ // measure text bound
+ if (mIfDrawText) {
+ mPaint.setColor(mTextColor);
+ canvas.drawText(text, progressPosX, -textHeight, mPaint);
+ }
+ // draw unreached bar
+ if (!noNeedBg) {
+ float start = progressPosX + mTextOffset / 2 + textWidth;
+ mPaint.setColor(mUnReachedBarColor);
+ mPaint.setStrokeWidth(mUnReachedProgressBarHeight);
+ canvas.drawLine(start, 0, mRealWidth, 0, mPaint);
+ }
+ canvas.restore();
+ }
+
+ /**
+ * dp 2 px
+ */
+ protected int dp2px(int dpVal) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, getResources().getDisplayMetrics());
+ }
+
+ /**
+ * sp 2 px
+ */
+ protected int sp2px(int spVal) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spVal, getResources().getDisplayMetrics());
+ }
}
\ No newline at end of file
diff --git a/cache/build/mPro.properties b/cache/build/mPro.properties
new file mode 100644
index 00000000..e69de29b