Filters.Java
public class Filters extends Activity implements OnSeekBarChangeListener{
private SeekBar PRICEbar,DISTANCEbar, RATINGbar; // declare seekbar object variable
// declare text label objects
private TextView PRICEtextProgress,DISTANCEtextProgress, RATINGtextProgress;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// load the layout
setContentView(R.layout.filters);
PRICEbar = (SeekBar)findViewById(R.id.PRICEseekBarID); // make seekbar object
PRICEbar.setOnSeekBarChangeListener(this);
PRICEbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
PRICEtextProgress = (TextView)findViewById(R.id.PRICEtextViewProgressID);
PRICEtextProgress.setText("Price:: Rs "+progress);
}
});
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (seekBar == PRICEbar)
PRICEtextProgress.setText("Price:: Rs "+progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
}
filters.xml
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<RelativeLayout
Android:id="@+id/relativeLayoutforPRICE"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<TextView
Android:id="@+id/PRICEtextViewProgressID"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:text="Price"
Android:textAppearance="?android:attr/textAppearanceLarge" >
</TextView>
<SeekBar
Android:id="@+id/PRICEseekBarID"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/textView1"
Android:layout_marginTop="26dp"
Android:max="100" >
</SeekBar>
</RelativeLayout>
</LinearLayout>
ありがとう!
シークバーの最大値は既に定義されています
Android:max="100"
ここで、シークバーの左右に2つのテキストビューを追加する必要があります。 相対レイアウトを使用し、textviews Left and Rightの両方を親に揃えます。
Brontokヒントは私の問題を解決しました...私も答えを共有したいです... xmlを変更しなければなりませんでした
<RelativeLayout
Android:id="@+id/relativeLayoutforPRICE"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<TextView
Android:id="@+id/PRICEtextViewProgressID"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:text="Price"
Android:textAppearance="?android:attr/textAppearanceLarge" >
</TextView>
<SeekBar
Android:id="@+id/PRICEseekBarID"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/textView1"
Android:layout_marginTop="26dp"
Android:max="100" >
</SeekBar>
<TextView
Android:id="@+id/PRICEinitialvaluetextID"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/PRICEseekBarID"
Android:text="Rs 0" >
</TextView>
<TextView
Android:id="@+id/PRICEinitialvaluetextID"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_below="@+id/PRICEseekBarID"
Android:text="Rs 100" />
</RelativeLayout>
まず、SeekBar
を拡張する必要があると思います。
次に、canvas.drawText()
メソッドでonDraw()
を呼び出して、SeekBar
の前とSeekBar
の後にテキストを描画します。
この方法で、textView
メソッドコールバックでonDraw
を更新できます
onSeekBarChangeListenerで作成されたメソッドを実装し、設定しました
public class Filters extends Activity implements OnSeekBarChangeListener{
PRICEbar.setOnSeekBarChangeListener(this);
次の行は、新しいOnSeekBarChangeListenerでオーバーライドします
PRICEbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
onSeekBarChangeListenerとこれら3つの空のメソッドをアクティビティから削除できます(onSeekBarChange、onStartTracking、onStopTracking)