01 public class MyProgress extends ProgressBar{
02 String text
03 Paint mPaint
04
05 public MyProgress(Context context) {
06 super(context)
07 // TODO Auto-generated constructor stub
08 System.out.println("1")
09 initText()
10 }
11
12 public MyProgress(Context context, AttributeSet attrs, int defStyle) {
13 super(context, attrs, defStyle)
14 // TODO Auto-generated constructor stub
15 System.out.println("2")
16 initText()
17 }
18
19
20 public MyProgress(Context context, AttributeSet attrs) {
21 super(context, attrs)
22 // TODO Auto-generated constructor stub
23 System.out.println("3")
24 initText()
25 }
26
27 @Override
28 public synchronized void setProgress(int progress) {
29 // TODO Auto-generated method stub
30 setText(progress)
31 super.setProgress(progress)
32
33 }
34
35 @Override
36 protected synchronized void onDraw(Canvas canvas) {
37 // TODO Auto-generated method stub
38 super.onDraw(canvas)
39 //this.setText()
40 Rect rect = new Rect()
41 this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect)
42 int x = (getWidth() / 2) - rect.centerX()
43 int y = (getHeight() / 2) - rect.centerY()
44 canvas.drawText(this.text, x, y, this.mPaint)
45 }
46
47 //初始化,画笔
48 private void initText(){
49 this.mPaint = new Paint()
50 this.mPaint.setColor(Color.WHITE)
51
52 }
53
54 private void setText(){
55 setText(this.getProgress())
56 }
57
58 //设置文字内容
59 private void setText(int progress){
60 int i = (progress * 100)/this.getMax()
61 this.text = String.valueOf(i) + "%"
62 }
63
64
65 }
这样一个可以满足我们基本需求的进度条就写好了。
用的时候就可以直接在layout的XML里面加了,不过添加的写法稍微有点不同。标记名要写成这个自定义进度条的完整类名,就像下面这样。
1 <hol.test.MyProgress
2android:id="@+id/pgsBar"
3android:max="100"
4android:layout_width="fill_parent"
5android:layout_height="wrap_content"
6style="?android:attr/progressBarStyleHorizontal"
7android:visibility="visible"
8/>
这样写后,可能会因为命名空间改变,下面属性无法用代码提示。一个简单的做法就是,先写一个正常的ProgressBar的标记,把属性写完后,再将ProgressBar替换为我们自定义的进度条的完整类名。
最后,使用方法就和普通的ProgressBar差不多了。
01 public class ProgressTest extends Activity {
02
03 private Button btn_go = null
04 private MyProgress myProgress = null
05 private Handler mHandler
06
07 /** Called when the activity is first created. */
08 @Override
09 public void onCreate(Bundle savedInstanceState) {
10 super.onCreate(savedInstanceState)
11 setContentView(R.layout.main)
12 findView()
13 setParam()
14 addListener()
15
16 mHandler = new Handler(new Callback() {
17
18 @Override
19 public boolean handleMessage(Message msg) {
20 // TODO Auto-generated method stub
21 myProgress.setProgress(msg.what)
22 return false
23 }
24 })
25
26 }
27
28 private void findView(){
29 btn_go = (Button) findViewById(R.id.btn_go)
30 myProgress = (MyProgress) findViewById(R.id.pgsBar)
31 }
32
33 private void setParam(){
34 btn_go.setText("开始")
35 }
36 private void addListener(){
37 btn_go.setOnClickListener(new OnClickListener() {
38
39 @Override
40 public void onClick(View v) {
41 // TODO Auto-generated method stub
42 new Thread(new Runnable() {
43 @Override
44 public void run() {
45 // TODO Auto-generated method stub
46 for(int i = 0i <=50i++){
47 mHandler.sendEmptyMessage(i * 2)
48 try {
49 Thread.sleep(80)
50 } catch (InterruptedException e) {
51 // TODO Auto-generated catch block
52 e.printStackTrace()
53 }
54 }
55 }
56 }).start()
57 }
58 })
59 }
60 }
1、打开抖音首页,点击页面中间的“+”号。
2、进入拍摄页面后,点击中间的红色按钮。
3、拍摄好视频后,点击打勾标志。
4、点击文字。
5、输入合适的文字。
6、文字输入好后,单击一下文字,在d出来的功能表中,选择设置时长。
7、把进度条从右往左拖,设置好文字显示的时间,然后点击右下角的打勾。
8、设置好第一句话后,再次点击文字,输入第二句话。
9、把进度条从左往右拖,设置好第二句话显示的时间,然后点击右下角的打勾。
10、用同样的方法设置好文字显示的时间,然后点击下一步。
11、点击发布。
12、这样就会一句一句的出现。
1、首先在电脑上打开project文档,如图所示,选择菜单栏上的【格式】。
2、然后点击左侧的【文本样式】,如图所示。
3、然后在d出的文本样式页面,设置字体的样式,字体,字号等等参数,如图所示。
4、设置完毕之后,点击【确定】,如图所示。
5、这时project中的字体就发生了变化,如图所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)