やっぱり自前で作らずに止めたかったので、childviewからむりやりseekbarを抜き出して止めることにした。
private void findSeekBar(ViewGroup vg){
for(int i=0; i < vg.getChildCount(); i++){
View v = vg.getChildAt(i);
if(v instanceof SeekBar){
sb = (SeekBar)v;
} else if (v instanceof ViewGroup) {
findSeekBar((ViewGroup)v);
}
}
}
でみつけて、
seekBar.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(myListener!=null)myListener.onDragStart();
dragging = true;
return false;
}
});
ドラッグの終了判定は前回のまま。
ただ、OSのソースが変わるとだめになるからどうなんだろう。
2011年6月21日火曜日
2011年6月13日月曜日
youtubeっぽくseek中は動画を止めたかった
MediaControllerの個別のパーツはprivateで作ってあるので、いじるなという事かなと。
それならばどうすれば・・・
きっとどこかで横取り出来るのだろうと思って調べたら、
それらしいのがあったので試してみた。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
if(ev.getAction() == MotionEvent.ACTION_DOWN){
video.pause();
} else if(ev.getAction() == MotionEvent.ACTION_UP){
video.start();
}
return onTouchEvent(ev);
}
このソースだと、view全体に対してeventを拾うので、関係ない所でタッチしてもハンドリングしてしまうので、駄目。
どうやら自作する方が早いみたいだなという結論に。
それならばどうすれば・・・
きっとどこかで横取り出来るのだろうと思って調べたら、
それらしいのがあったので試してみた。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
if(ev.getAction() == MotionEvent.ACTION_DOWN){
video.pause();
} else if(ev.getAction() == MotionEvent.ACTION_UP){
video.start();
}
return onTouchEvent(ev);
}
このソースだと、view全体に対してeventを拾うので、関係ない所でタッチしてもハンドリングしてしまうので、駄目。
どうやら自作する方が早いみたいだなという結論に。
2011年6月4日土曜日
video viewの配置
video viewを継承してmy viewを作ったらレイアウトが崩れた。
はまったけど、実は、これだけでOKだった。
TableRow row = (TableRow)findViewById(R.id.video_row);
row.setGravity(Gravity.CENTER);
table layoutの中に入れていたのがハマった原因。
はまったけど、実は、これだけでOKだった。
TableRow row = (TableRow)findViewById(R.id.video_row);
row.setGravity(Gravity.CENTER);
table layoutの中に入れていたのがハマった原因。
登録:
投稿 (Atom)