【 声明:版权全部,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

首先。在開始今天的文章之前。我们还是给朋友们展示一下前面一段代码的执行效果。效果例如以下,

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpeGlhb3hpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

有兴趣的朋友能够找到这段代码,看一下执行的效果怎样。

今天,我们能够看一下进度条的相关代码。

进度条,说简单也简单。说复杂也复杂。

我想,关于进度条大家印象最深的就是之前windows xp启动的情况,这里里边就有一个进度条。相同,我还是比較喜欢用代码来说明问题,

#include "ftk.h"

static Ret button_quit_clicked(void* ctx, void* obj)

{

ftk_quit();

return RET_OK;

}

static Ret update_progress(void* ctx)

{

int percent = 0;

FtkWidget* progress_bar = ctx;

percent = ftk_progress_bar_get_percent(progress_bar);

if(percent == 100)

{

return RET_REMOVE;

}

ftk_progress_bar_set_percent(progress_bar, percent + 10);

return RET_OK;

}

int FTK_MAIN(int argc, char* argv[])

{

int width = 0;

int height = 0;

FtkWidget* win = NULL;

FtkWidget* button = NULL;

FtkWidget* progress_bar = NULL;

FtkSource* timer = NULL;

ftk_init(argc, argv);

win = ftk_app_window_create();

width = ftk_widget_width(win);

height = ftk_widget_height(win);

width = width - 20;

progress_bar = ftk_progress_bar_create(win, 10, height/6, width, 20);

ftk_progress_bar_set_percent(progress_bar, 20);

timer = ftk_source_timer_create(1000, update_progress, progress_bar);

ftk_main_loop_add_source(ftk_default_main_loop(), timer);

progress_bar = ftk_progress_bar_create(win, 10, height/3, width, 20);

ftk_progress_bar_set_percent(progress_bar, 20);

timer = ftk_source_timer_create(1000, update_progress, progress_bar);

ftk_main_loop_add_source(ftk_default_main_loop(), timer);

progress_bar = ftk_progress_bar_create(win, 10, height/2, width, 20);

ftk_progress_bar_set_percent(progress_bar, 20);

timer = ftk_source_timer_create(1000, update_progress, progress_bar);

ftk_main_loop_add_source(ftk_default_main_loop(), timer);

button = ftk_button_create(win, width/4, 3*height/4, width/2, 60);

ftk_widget_set_text(button, "quit");

ftk_button_set_clicked_listener(button, button_quit_clicked, win);

ftk_window_set_focus(win, button);

ftk_widget_set_text(win, "progress_bar demo");

ftk_widget_show_all(win, 1);

ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);

ftk_run();

return 0;

}

ftk的流程。之前的文章都已经涉及了,这里就不再赘述了。在此。我们仅仅须要关注进度条的相关代码就能够了。从代码中不难发现。这里除了创建1个button之外。还创建了3个进度条。进度条的初始数值都是20%。

那么进度条是怎么添加的呢?事实上,这里代码还创建了3个timer。

它告诉我们,每隔一段时间都会调用update_progress这个函数。此时进度条会有对应的添加。

一旦100%。就结束了。

相同,执行效果下次再现。

版权声明:本文博主原创文章,博客,未经同意不得转载。

Android拖动进度条画面随动,ftk学习记录(一个进度条文章)相关推荐

  1. Android拖动进度条画面随动,Android学习笔记(24):进度条组件ProgressBar及其子类

    ProgressBar作为进度条组件使用,它还派生了SeekBar(拖动条)和RatingBar(星级评分条). ProgressBar支持的XML属性: Attribute Name Related ...

  2. ftk学习记(进度条篇)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 首先,在开始今天的文章之前,我们还是给朋友们展示一下前面一段代码的运行效果.效果如下, 有兴趣 ...

  3. vue aplayer 进度条无法拖动_为 Vue 的惰性加载加一个进度条

    // 每日前端夜话 第412篇// 正文共:1800 字// 预计阅读时间:8 分钟 简介 通常用 Vue.js 编写单页应用(SPA)时,当加载页面时,所有必需的资源(如 JavaScript 和 ...

  4. ftk学习记(滑动条篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前一篇说到了combox,就先看一下效果吧. 说完了combox,就谈谈今天的滑动条.滑动条,当 ...

  5. Android中通过SeekBar手动控制ProgressBar与模拟下载自动更新进度条

    场景 进度条的常用场景: 通过SeekBar拖动进而更新ProgressBar进度条,比如调整音量效果等. 模拟下载实现自动更新进度条. 注: 博客: https://blog.csdn.net/ba ...

  6. Android学习笔记(24):进度条组件ProgressBar及其子类

    ProgressBar作为进度条组件使用,它还派生了SeekBar(拖动条)和RatingBar(星级评分条). ProgressBar支持的XML属性: Attribute Name Related ...

  7. Android 拖动条(SeekBar)实例 附完整demo项目代码

    Android 拖动条(SeekBar)实例 附完整demo项目代码 1.拖动条的事件 实现SeekBar.OnSeekBarChangeListener接口.需要监听三个事件: 数值改变(onPro ...

  8. android第三方开源音频播放器,Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用...

     Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用 Android平台原生的SeekBar设计简单,然而,比如现在流行的一些音乐播放器的播放进度控制条,如果直接使 ...

  9. 如何解决Mac电脑在启动时卡在Apple 标志或进度条画面?

    Mac 在找到本地启动磁盘后会显示 Apple 标志,然后随着 macOS 启动或安装过程的继续,Mac 会显示一个进度条. Mac 在找到启动磁盘后会显示 Apple 标志,启动磁盘通常是 Mac ...

最新文章

  1. Android重写FragmentTabHost来实现状态保存
  2. hdu 1874 畅通工程续(模板题 spfa floyd)
  3. aspnet_regiis.exe -i 执行报错
  4. javafx响应式布局_JavaFX的响应式设计
  5. oracle10g rac启动,ORACLE 10G RAC启动与关闭
  6. 【hihocoder 1039 字符串消除】模拟
  7. SentinelResource注解配置中_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0046
  8. 转:Delphi中destroy, free, freeAndNil, release用法和区别
  9. 从功能到接口,原来技能可以通用!
  10. 用java处理图片(压缩成小尺寸;加文字和logo水印)
  11. 基于SpringBoot校园疫情防控管理系统 校园出入登记系统
  12. vue引入 wps在线编辑版,可进行 预览,编辑, 打印等功能。
  13. (渗透-摘录) cookie 注入
  14. MySql自动增长从头开始
  15. 第3章 天墉城有仙人
  16. win10系统用什么测试软件,Win10系统如何测试软件兼容性?
  17. VMware安装windows server 2008 r2详细教程
  18. 基于OpenCV的刷脸考勤&人脸校验&用户管理系统(源码&教程)
  19. 智能体仿真中的BDI(belief-desire-intention)架构
  20. 20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计

热门文章

  1. 说明所有BeanPostProcessor的触发时机
  2. 关于CTRL+Z失效的问题
  3. spark sql教程_如何使用Spark SQL:动手教程
  4. Linux/centos下查看网卡型号,如何查看主板型号,CPU/显卡信息,硬盘型号等硬件信息...
  5. mySql获取表的字段名,字段注释
  6. PDF打印出现:请安装Evernote程序
  7. 最长回文子串(C/C++动态规划)
  8. Javascript对圆角div的实现
  9. word excel 应用程序无法正常启动(0xc0000142)
  10. 三星电子 CEO 敲定,三人联席架构继续,李尚勋将任董事会主席