答案 0 :(得分:1)
This example code应该给你想要的东西。如果有帮助,请告诉我。
编辑: 我编辑了链接,只指向了应该更容易的特定项目。
从我提供的链接下载项目作为zip,然后解压缩。在romannurik-code-e77853751bbd文件夹中导航到misc / pinprogress,然后你将进入这个项目。从src文件夹中将PinProgressButton.java添加到您的项目以及res目录中除ic_launcher.png之外的所有项目。
将其添加到您的布局
<com.yourpackage.pinprogress.PinProgressButton
android:id="@+id/pin_progress_1"
style="@style/PinProgressButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right" />
从您的活动中引用它
final PinProgressButton pinProgress1 = (PinProgressButton) findViewById(
R.id.pin_progress_1);
设置进度
pinProgress1.setProgress(progressValue);
这是为了更改content description
CompoundButton.OnCheckedChangeListener checkedChangeListener
= new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
updatePinProgressContentDescription((PinProgressButton) compoundButton);
}
};
pinProgress1.setOnCheckedChangeListener(checkedChangeListener);
updatePinProgressContentDescription(pinProgress1);
}
private void updatePinProgressContentDescription(PinProgressButton button) {
int progress = button.getProgress();
if (progress <= 0) {
button.setContentDescription(getString(button.isChecked()
? R.string.content_desc_pinned_not_downloaded
: R.string.content_desc_unpinned_not_downloaded));
} else if (progress >= 100) {
button.setContentDescription(getString(button.isChecked()
? R.string.content_desc_pinned_downloaded
: R.string.content_desc_unpinned_downloaded));
} else {
button.setContentDescription(getString(button.isChecked()
? R.string.content_desc_pinned_downloading
: R.string.content_desc_unpinned_downloading));
}
}