自定义下载进度条,下载刻度
package com.ankoninc.esdiagnose.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.ankoninc.esdiagnose.R;
public class ProgressView extends LinearLayout {
private ProgressBar mProgressBar;
private TextView mDownloadedTextView;
private TextView mMaxTextView;
public ProgressView(Context context) {
this(context, null);
}
public ProgressView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ProgressView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOrientation(VERTICAL);
int padding = context.getResources().getDimensionPixelSize(R.dimen.dialog_content_padding);
setPadding(padding, padding, padding, padding);
setupViews(context);
}
private void setupViews(Context context) {
View view = View.inflate(context, R.layout.progress_view, this);
mProgressBar = (ProgressBar) view.findViewById(R.id.progressBar);
mDownloadedTextView = (TextView) view.findViewById(R.id.progressText1);
mMaxTextView = (TextView) view.findViewById(R.id.progressText2);
initUI();
}
private void initUI() {
mDownloadedTextView.setText(getResources().getString(R.string.apk_downloaded_percent, "0%"));
mMaxTextView.setText(String.format("%s/%s", 0, 0));
mProgressBar.setMax(100);
mProgressBar.setProgress(0);
}
/**
* 更新进度信息
* @param downloadedBytes
* @param totalBytes
*/
public void update(int downloadedBytes, int totalBytes) {
int percent = 100 * downloadedBytes / totalBytes;
mDownloadedTextView.setText(getResources().getString(R.string.apk_downloaded_percent, percent + "%"));
mMaxTextView.setText(String.format("%s/%s", downloadedBytes, totalBytes));
mProgressBar.setMax(totalBytes);
mProgressBar.setProgress(downloadedBytes);
}
}