[閒聊] 螢幕鎖的製作...

看板AndroidDev作者 (叛帝)時間12年前 (2014/01/09 18:24), 編輯推噓3(304)
留言7則, 5人參與, 最新討論串1/1
我今天原本打算要製作一種特效 就做是像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
github上很多類似功能的,不然去看Nexus的原始碼不就
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
看原碼看到TODO 是變小心的第一步阿
01/10 12:56, 5F

01/10 14:25, , 6F
=口=...所以我現在第一步是去摸GITHUB嗎=口=?
01/10 14:25, 6F

01/11 12:16, , 7F
github也沒啥好摸的 看到想看的Code就右下角下載zip就好了
01/11 12:16, 7F
文章代碼(AID): #1IpdZRk3 (AndroidDev)