第七章 —高级组件:拖动条seekBar、星级评分条RatingBar、进度条ProgressBar、滚动视图ScrollView
2016-12-17 10:48
405 查看
拖动条seekBar
<SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="185dp" /> protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.seekBar1); tv = (TextView) findViewById(R.id.tv); seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { // 拖拽完毕 } @Override public void onStartTrackingTouch(SeekBar seekBar) { // 开始拖拽时 用户刚好点上去 } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 每次进度改变都会调用 // 是否是用户改变的呢??? // if (fromUser) { tv.setText(progress + "/" + seekBar.getMax()); // } // 拖动进度条,我需要改变音量 // flags用来 需不需要声音 是否需要ui manager.setStreamVolume(AudioMana 4000 ger.STREAM_MUSIC, progress, AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND); } }); // seekBar.setMax(200); // seekBar.setProgress(50); // 获取系统服务 // 获取音频管理器 manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); // 获取他的最大值 0-15 int max = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); seekBar.setMax(max); // 本来就有一个声量值 int volumn = manager.getStreamVolume(AudioManager.STREAM_MUSIC); Log.e("TAG", volumn + " "); seekBar.setProgress(volumn); }
星级评分条RatingBar
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { // ++ seekBar.setProgress(seekBar.getProgress() + 1); } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { seekBar.setProgress(seekBar.getProgress() - 1); } return super.onKeyUp(keyCode, event); } ```
进度条ProgressBar
``` <ProgressBar android:id="@+id/progressBar4" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:max="50" android:padding="10dp" android:progress="10" /> protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ProgressBar pb = (ProgressBar) findViewById(R.id.progressBar4); final TextView tv = (TextView) findViewById(R.id.tv); pb.setMax(200); pb.setProgress(0); new Thread() { public void run() { // 模拟耗时任务 int index = 0; while (index++ < 200) { try { Thread.sleep((int) (Math.random() * 200)); } catch (InterruptedException e) { e.printStackTrace(); } // 修改值 // 做了UI的处理,所以直接可以在子线程中修改UI pb.setProgress(index); // 需要使用UI线程 runOnUiThread(new Runnable() { @Override public void run() { tv.setText(pb.getProgress() + "/" + pb.getMax()); } }); } }; }.start(); ```
滚动视图ScrollView
``` ScrollView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); view = (ScrollView) findViewById(R.id.view); // 滑动到指定位置 // 这个方法必须等待view完全显示 // post 延迟操作 int width = view.getWidth(); Log.e("TAG", width + " "); final long startTime = System.currentTimeMillis(); // view在这里还并没有在完成 view.post(new Runnable() { @Override public void run() { int width = view.getWidth(); Log.e("TAG", width + " " + (System.currentTimeMillis() - startTime)); view.fullScroll(ScrollView.FOCUS_DOWN); } }); } // // @Override // public void onWindowFocusChanged(boolean hasFocus) { // super.onWindowFocusChanged(hasFocus); // view.fullScroll(ScrollView.FOCUS_DOWN); // } ```
相关文章推荐
- Android开发高级组件--ScrollView(滚动视图组件)
- Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar
- 各种杂项组件(4)之----SearchView(搜索框)、TabHost(选项卡)、ScrollView(滚动视图)
- ScrollView 滚动视图组件
- 【Android开发】高级组件-拖动条和星级评分条
- Android 程式开发:(五)屏幕组件 —— 5.7 ScrollView滚动视图
- 高级控件之滚动视图(ScrollView)
- Cocos2d-x学习笔记(14)(更新函数scheduleUpdate、进度计时器CCProgressTo、滚动视图CCScrollView)
- Android学习-组件3(选项卡,拖动条,进度条,图像视图)
- Cocos2d-x学习笔记(14)(更新函数scheduleUpdate、进度计时器CCProgressTo、滚动视图CCScrollView)
- Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar
- 通知栏Notification使用自定义视图方法(显示一个进度条ProgressBar)
- Xamarin iOS教程之进度条和滚动视图
- Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar
- tableView头部放scrollView滚动视图
- Xamarin.Forms的滚动视图ScrollView
- Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar
- 【Unity3D 游戏开发之二】高级组件(GUI:LABEL、SCROLLVIEW、TEXTFIELD…等)入门篇
- Android 重写ScrollView控件,以至于上下拖动时获取正确的滚动位置
- Android高级界面组件之拖动条和评星条的功能实现