[閒聊] 螢幕鎖的製作...
我今天原本打算要製作一種特效
就做是像nexus 5狀態列
在listview中按住其中一個item往右拉之後放開
被選取的這行item就會消失..
找了很久發現可以利用監聽觸碰座標的方式去做..
但是很慘的是我只需要單一item的效果..
就是說在listview中放一個按鈕
然後按住按鈕往右邊拉..放開之後就可以消除這行listview
而不是直接拖曳listview
碰到第一個問題就是listview中的按鈕
除了按下之外好像監聽不到其他狀態...
而且更糟的是我listview套在..viewpager上
一拖曳就翻頁了....
最後我想到用seekBar....
這樣就可以在listview中拖曳又可以監聽的到狀態了
不過要做到...單純的放開就彈回去...
而且要做到能夠不能被直接從中段拖曳
一定要從頭的地方拖曳...
我就想把兩個bar套在一起..這樣看起來就很像了...
不會寫註解..程式碼有點亂XD
我一直想查解除待機畫面的拖曳怎麼做...但是沒有頭緒...
既然拖曳只需要拖左右而且又限制監聽...只好這樣弄了...
搞掉我一整天Q口Q
程式碼:
bar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//沒有拉到底所以要彈回去
if(check<100){
bar1.setProgress(0);
///把被拉到的bar蓋住
bar2.setVisibility(View.VISIBLE);
}
//判斷歸零
w=0;
bar1.setVisibility(View.VISIBLE);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
//判斷拖曳的起始位置
check =progress;
//判斷拖曳的位置是否為頭
if(check<13&&check!=0){
w=1;
//把覆蓋層拿掉
bar2.setVisibility(View.INVISIBLE);
}
//如果位置不是頭就讓它彈回去然後隱藏起來
//這樣看起來很像bar沒被拖動過,事實上是有的
if (w==0){
if (check>13){
bar1.setVisibility(View.INVISIBLE);
bar1.setProgress(0);
bar2.setVisibility(View.VISIBLE);
check=0;
}
}
}
});
--
ボ ◢ ◥══◢ ◥═══◢ ◥◣ ══◥◣◢◤◣═ ◣◢═Vocaloid╮
║ ◣ ◤◥ ◢◢◢▼ quetzal◤◥◥﹨◣ ◢◥◤ ◥ ▼◥ ◣◢ ║
║ ● ●▼ ● ●◥ ロ ● ● ;│ ▼◥︽﹨ ◆▼◥▼﹨ ▃▃
║ ◣▄ ◢◤ ◤◣▆ ◢◥ ◥◣▃ ▉◤ ═● ● ▌ ◤● ● ▌ ◢ド!
║ ◤◤◢ ◣ カ ████▆≡ ◤▆ ◥ ◢◣▁ ▉◥ ◣▄ ▉◤ ▅▅
╰══◣︶●═══ ▊█▎◥◣══▼ ◢/△ ◤═イ═△▅/◥══ △▅/◣ ═══╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.164.154
※ 編輯: tga123 來自: 114.34.164.154 (01/09 18:25)
→
01/09 19:00, , 1F
01/09 19:00, 1F
→
01/09 19:00, , 2F
01/09 19:00, 2F
→
01/09 19:17, , 3F
01/09 19:17, 3F
推
01/09 20:52, , 4F
01/09 20:52, 4F
推
01/10 12:56, , 5F
01/10 12:56, 5F
→
01/10 14:25, , 6F
01/10 14:25, 6F
推
01/11 12:16, , 7F
01/11 12:16, 7F