作者tga123 (叛帝)
看板AndroidDev
标题[闲聊] 萤幕锁的制作...
时间Thu Jan 9 18:24:23 2014
我今天原本打算要制作一种特效
就做是像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;
}
}
}
});
--
ボ ◢ ◥══
◢ ◥═══
◢ ◥◣ ══
◥◣◢◤◣
═ ◣◢═Vocaloi
d╮
║
◣ ◤◥ ◢◢◢▼ quetzal◤◥◥﹨◣ ◢◥◤ ◥ ▼◥ ◣◢ ║
║
● ●▼ ● ●◥ ロ ● ● ;│ ▼◥︽﹨ ◆▼◥▼﹨ ▃▃
║
◣▄ ◢◤ ◤◣▆ ◢◥ ◥
◣▃ ▉
◤ ═● ● ▌ ◤● ● ▌ ◢
ド!
║
◤◤◢ ◣
カ ████▆≡ ◤▆ ◥ ◢
◣▁ ▉
◥ ◣▄ ▉
◤ ▅▅
╰══
◣︶●═══
▊█▎◥◣══
▼ ◢/△ ◤═イ═△▅/◥══
△▅/◣ ═══
╯
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.164.154
※ 编辑: tga123 来自: 114.34.164.154 (01/09 18:25)
1F:→ gn00742754:github上很多类似功能的,不然去看Nexus的原始码不就 01/09 19:00
2F:→ gn00742754:好了 01/09 19:00
3F:→ tga123:原码~抖~听起好像很复杂囧 01/09 19:17
4F:推 tac0wu:看原码 是变强的第一步阿 01/09 20:52
5F:推 lovelycateye:看原码看到TODO 是变小心的第一步阿 01/10 12:56
6F:→ tga123:=口=...所以我现在第一步是去摸GITHUB吗=口=? 01/10 14:25
7F:推 wuliou:github也没啥好摸的 看到想看的Code就右下角下载zip就好了 01/11 12:16