PdaSeekBarView.java
3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package com.huaheng.mobilewms.view;
import android.content.Context;
import android.graphics.Color;
import android.support.constraint.ConstraintLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SeekBar;
import com.huaheng.mobilewms.R;
public class PdaSeekBarView extends ConstraintLayout {
final EditText percent;
final SeekBar sb;
final Button btLess, btMore, bt0, bt50, bt100;
boolean beenEdit = false;
int rate = 1;
public PdaSeekBarView(Context context) {
super(context);
LayoutInflater.from(context).inflate(R.layout.pda_seekbar_view, this);
this.setBackgroundColor(Color.rgb(255,255,255));
percent = findViewById(R.id.percent);
btLess = findViewById(R.id.btLess);
btMore = findViewById(R.id.btMore);
bt0 = findViewById(R.id.bt0);
bt50 = findViewById(R.id.bt50);
bt100 = findViewById(R.id.bt100);
sb = findViewById(R.id.seekbar);
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
percent.setText(String.valueOf(progress * rate));
beenEdit = true;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
bt0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setProgress(0);
}
});
bt50.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setProgress(50);
}
});
bt100.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setProgress(100);
}
});
btLess.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int newP = sb.getProgress() - 10;
setProgress(newP);
}
});
btMore.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int newP = sb.getProgress() + 10;
setProgress(newP);
}
});
}
private void setProgress(int p){
beenEdit = true;
if(p<=0){
sb.setProgress(0, true);
return;
}
if(p>=sb.getMax()){
sb.setProgress(sb.getMax(), true);
return;
}
sb.setProgress(p, true);
return;
}
public int getPercent(){
return Integer.parseInt(percent.getText().toString());
}
public void setMax(int max){
if(100 % max != 0){
throw new RuntimeException("max value error!");
}
sb.setMax(max);
rate = 100 / max;
}
public boolean hasBeenEdit(){
return beenEdit;
}
}