導航:首頁 > 操作系統 > androidseekbar垂直

androidseekbar垂直

發布時間:2022-07-22 05:19:40

android關於自定義seekbar控制項的問題(將橫向seekbar改成豎向seekbar)

是不是按鍵值出錯了,你在onKeyDown里每次按鍵都列印出來按鍵值System.out.println("鍵值:"+keyCode);
然後看看按鍵值是不是跟你寫的對應

㈡ android 怎麼實現類似SeekBar的單向調節改成雙向調節范圍

網上有個重寫View實現的,SeekBarPressure

以下是一個使用SeekBar來調節系統音量的實例:
XML代碼:
<SeekBar
android:id="@+id/sound"
android:layout_width="150px"
android:layout_height="10px"
android:max="100" //設置拖動條最大值
android:progress="10" //設置拖動條當前值
android:progressDrawable="@layout/seekbar_style" //拖動條樣式
android:thumb="@layout/thumb" /> //滑塊樣式

seekbar_style.xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@android:id/background">
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ff000000" android:endColor="#ff808A87"
android:centerY="1" android:angle="270" />
</shape>
</item>

<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ffFFFF00" android:endColor="#ffAABD00"
android:centerY="1" android:angle="270" />
</shape>
</clip>
</item>
</layer-list>

thumb.xml:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下狀態 -->
<item
android:state_pressed="true"
android:drawable="@drawable/thumb_normal"
/>

<!-- 普通無焦點狀態 -->
<item
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/thumb_normal"
/>

</selector>

bacon_seekbar.xml:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@+android:id/background"
android:drawable="@drawable/thumb_normal" />
<item
android:id="@+android:id/SecondaryProgress"
android:drawable="@drawable/thumb_normal" />
<item
android:id="@+android:id/progress"
android:drawable="@drawable/thumb_normal" />
</layer-list>

JAVA代碼:
public class PianoActivity extends Activity {
/** Called when the activity is first created. */
private ImageButton imageButton_white1;
private MediaPlayer mediaPlayer01;
public AudioManager audiomanage;
private TextView mVolume ; //顯示當前音量
public SeekBar soundBar;
private int maxVolume, currentVolume;

private int volume=0; //初始化聲音

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mediaPlayer01 = new MediaPlayer();

imageButton_white1=(ImageButton)findViewById(R.id.white1);
final SeekBar soundBar=(SeekBar)findViewById(R.id.sound); //音量設置
mVolume = (TextView)findViewById(R.id.mVolume);
audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

maxVolume = audiomanage.getStreamMaxVolume(AudioManager.STREAM_MUSIC); //獲取系統最大音量
soundBar.setMax(maxVolume); //拖動條最高值與系統最大聲匹配
currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC); //獲取當前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + " %");

soundBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() //調音監聽器
{
public void onProgressChanged(SeekBar arg0,int progress,boolean fromUser)
{
audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC); //獲取當前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + " %");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub

}
});

TextView的XML沒有給出,需要自己添加。

㈢ android studio怎麼修改seekbar樣式

android:id="@+id/player_seekbar"
android:layout_width="245px"
android:layout_height="25px"
android:progressDrawable="@drawable/seekbar_style"
android:thumb="@drawable/thumb"
android:paddingLeft="16px"
android:paddingRight="15px"
android:paddingTop="5px"
android:paddingBottom="5px"
android:progress="0"
android:max="0"
android:secondaryProgress="0"
/>
Android:progressDrawable="@drawable/seekbar_style"背景條
seekbar_style配置如下:
Xml代碼
<?xml version="1.0" encoding="UTF-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

㈣ 求助,Android裡面的seekbar怎麼垂直顯示

把seekbar復寫了。。旋轉90度就可以了。

import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.SeekBar;

public class SlideBar extends SeekBar {

private int oHeight = 100;
private int oWidth = 30;
private int oProgress = -1;
private int oOffset = -1;;
private float xPos = -1;
private float yPos = -1;
private int top = -1;
private int bottom = -1;
private int left = -1;
private int right = -1;

public SlideBar(Context context) {

super(context);
}

public SlideBar(Context context, AttributeSet attrs) {

super(context, attrs);
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
}

public SlideBar(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);
}

protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int height = View.MeasureSpec.getSize(heightMeasureSpec);
oHeight = height;
this.setMeasuredDimension(oWidth, oHeight);
}

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

super.onSizeChanged(h, w, oldw, oldh);
}

// 設置layout
protected void onLayout(boolean changed, int l, int t, int r, int b) {

super.onLayout(changed, l, t, r, b);
left = l;
right = r;
top = t;
bottom = b;
}

// 畫出滾動條
protected void onDraw(Canvas c) {
// 旋轉
c.rotate(90);
//控制左右位置
c.translate(0,-30);
super.onDraw(c);
}

public boolean onTouchEvent(MotionEvent event) {

xPos = event.getX();
yPos = event.getY();
float progress = 1-(yPos-this.getTop())/(this.getBottom()- this.getTop());
oOffset = this.getThumbOffset();
oProgress = this.getProgress();
Log.d("offset" + System.nanoTime(), new Integer(oOffset).toString());
Log.d("progress" + System.nanoTime(), new Integer(oProgress).toString());
float offset;
offset = progress * (this.getBottom() - this.getTop());
this.setThumbOffset((int)offset);
Log.d("offset_postsetprogress" + System.nanoTime(), new Integer(oOffset).toString());
Log.d("progress_postsetprogress" + System.nanoTime(), new Integer(oProgress).toString());
// this.setProgress((int)(100*event.getY()/this.getBottom()));
this.setProgress((int)(100 * progress));
return true;
}
}

㈤ android開發中,seekBar在拖動時進度會改變,如何讓音樂播放進度隨之改變

  1. seekbar.setOnSeekBarChangeListener(new seekbarListener());

  2. //這個監聽seekbar變化的,一旦有變,變化到哪progress表示

  3. private class seekbarListener implements OnSeekBarChangeListener{

  4. @Override

  5. public void onProgressChanged(SeekBar seekbar, int progress, boolean fromUser) {

  6. if(fromUser==true){

  7. mediaplay.seekTo(progress);//這里就是音樂播放器播放的位子

  8. }

  9. }

  10. @Override

  11. public void onStartTrackingTouch(SeekBar arg0) {

  12. // TODO Auto-generated method stub

  13. }

  14. @Override

  15. public void onStopTrackingTouch(SeekBar arg0) {

  16. // TODO Auto-generated method stub

  17. }

  18. }

  19. 還有就是seekbar的進度條變化用Handler更新,

㈥ android 帶節點的seekbar怎麼搞

sdk裡面沒有提供設置成垂直的方法 要自己去實現 查看原帖>>

㈦ Android開發中SeekBar的值改變後,系統如何得到其改變後的值

SeekBar是ProgressBar的擴展,在其基礎上增加了一個可拖動的thumb(註:就是那個可拖動的圖標)。用戶可以觸摸thumb並向左或向右拖動,再或者可以使用方向鍵都可以設置當前的進度等級。不建議把可以獲取焦點的widget放在SeekBar的左邊或右邊。
SeekBar的setProgress是對Seekbar進行進度設置的方法,
通過使用seekbar.setProgress(叮笭恥蝗儕豪抽通處坤0),可以設置成 seekbar的最小值

閱讀全文

與androidseekbar垂直相關的資料

熱點內容
股市中帶星號的app是什麼 瀏覽:707
什麼路由可以刷機做列印機伺服器 瀏覽:5
電腦怎麼找到雲伺服器 瀏覽:871
微信怎麼發應用app 瀏覽:776
花生殼dns伺服器地址 瀏覽:648
squad伺服器一般什麼時候人多 瀏覽:479
程序員戰門課 瀏覽:474
config保存伺服器地址 瀏覽:317
預訂網吧座位的app叫什麼 瀏覽:416
香港伺服器主機地址 瀏覽:640
網店美工pdf 瀏覽:447
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:504
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:762
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944