简易模仿手机拨号盘浮在ListView之上并且展开,折叠效果

2013-12-24 16:56:45

有时候可以看到很多手机会将Call log list和Dailer放在同一个页面中,同时Dialer是可以折叠、打开的,自己做了一个Demo,能实现这种效果,简易版的,就当做个笔记吧。

里面用到了简单的动画,不过布局稍显特殊。

废话不多说,直接上代码:

 1 public class TestActivity extends Activity implements
 2         Animation.AnimationListener {
 3 
 4     private ListView mListView;
 5 
 6     private Animation mDialpadOutAnim;
 7     private Animation mDialpadInAnim;
 8     private View mDialpad;
 9     private View mTwelveKey;
10     private boolean mClosed;
11 
12     private String[] list;
13 
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_test);
18         mDialpad = findViewById(R.id.dialpad_container);
19         mListView = (ListView) findViewById(android.R.id.list);
20         initListView();
21     }
22 
23     private void initListView() {
24         int i = 0;
25         list = new String[10];
26         StringBuilder sb = new StringBuilder("Test");
27         do {
28             list[i] = (sb.append(i + "").toString());
29             i++;
30         } while (i < 10);
31         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
32                 android.R.layout.simple_list_item_1, list);
33         mListView.setAdapter(adapter);
34     }
35 
36     public void onClick(View v) {
37         if (mClosed) {
38             maximizeDialpad();
39             // mListView.setVisibility(View.GONE);
40         } else {
41             minimizeDialpad();
42         }
43     }
44 
45     private void minimizeDialpad() {
46         mTwelveKey = findViewById(R.id.twelve_key_dialer_layout);
47         mDialpadOutAnim = AnimationUtils
48                 .loadAnimation(this, R.anim.dialpad_out);
49         mDialpadOutAnim.setAnimationListener(this);
50         mTwelveKey.startAnimation(this.mDialpadOutAnim);
51         mClosed = true;
52     }
53 
54     private void maximizeDialpad() {
55         mTwelveKey = findViewById(R.id.twelve_key_dialer_layout);
56         mDialpadInAnim = AnimationUtils.loadAnimation(this, R.anim.dialpad_in);
57         mDialpadInAnim.setAnimationListener(this);
58         mTwelveKey.startAnimation(this.mDialpadInAnim);
59         mDialpad.setVisibility(View.VISIBLE);
60         mClosed = false;
61     }
62 
63     @Override
64     public void onAnimationStart(Animation animation) {
65 
66     }
67 
68     @Override
69     public void onAnimationEnd(Animation animation) {
70         if (mClosed) {
71             mDialpad.setVisibility(View.GONE);
72         }
73     }
74 
75     @Override
76     public void onAnimationRepeat(Animation animation) {
77 
78     }
79 }

其他的布局、资源文件就不贴出来了,有兴趣的直接下载Demo源码吧。

Demo源码,猛戳这里

转载于:https://www.cnblogs.com/wlrhnh/p/3489402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值