2013-12-24 16:56:45

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

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

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

 public class TestActivity extends Activity implements
Animation.AnimationListener { private ListView mListView; private Animation mDialpadOutAnim;
private Animation mDialpadInAnim;
private View mDialpad;
private View mTwelveKey;
private boolean mClosed; private String[] list; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
mDialpad = findViewById(R.id.dialpad_container);
mListView = (ListView) findViewById(android.R.id.list);
initListView();
} private void initListView() {
int i = 0;
list = new String[10];
StringBuilder sb = new StringBuilder("Test");
do {
list[i] = (sb.append(i + "").toString());
i++;
} while (i < 10);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
mListView.setAdapter(adapter);
} public void onClick(View v) {
if (mClosed) {
maximizeDialpad();
// mListView.setVisibility(View.GONE);
} else {
minimizeDialpad();
}
} private void minimizeDialpad() {
mTwelveKey = findViewById(R.id.twelve_key_dialer_layout);
mDialpadOutAnim = AnimationUtils
.loadAnimation(this, R.anim.dialpad_out);
mDialpadOutAnim.setAnimationListener(this);
mTwelveKey.startAnimation(this.mDialpadOutAnim);
mClosed = true;
} private void maximizeDialpad() {
mTwelveKey = findViewById(R.id.twelve_key_dialer_layout);
mDialpadInAnim = AnimationUtils.loadAnimation(this, R.anim.dialpad_in);
mDialpadInAnim.setAnimationListener(this);
mTwelveKey.startAnimation(this.mDialpadInAnim);
mDialpad.setVisibility(View.VISIBLE);
mClosed = false;
} @Override
public void onAnimationStart(Animation animation) { } @Override
public void onAnimationEnd(Animation animation) {
if (mClosed) {
mDialpad.setVisibility(View.GONE);
}
} @Override
public void onAnimationRepeat(Animation animation) { }
}

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

Demo源码,猛戳这里

简易模仿手机拨号盘浮在ListView之上并且展开,折叠效果的更多相关文章

  1. 微信浏览器安卓手机video浮在最上层问题

    微信浏览器安卓手机video浮在最上层问题 //x5-video-player-type="h5" x5-video-player-fullscreen="true&qu ...

  2. Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18311877) 今天还是给大家带来自定义控件的编写,自定义一个Lis ...

  3. UWP 取消GridView、ListView鼠标选中、悬停效果

    因为经常碰到ListView或者ListBox之类的选中.鼠标悬停样式和自己设置的主题颜色不搭,这时就需要改变这些样式了. 而这里我通过ListView来说明,大致思路其实就是重新定义Item的Tem ...

  4. WP8.1 模仿手机通讯记录的选择框

    2016年11月6日 更新: 其实 这个有一个非常简单的方法.非常简单... ListView SelectionMode="Multiple" 这个一XAML  代码就可以解决了 ...

  5. Android:仿手机QQ朋友动态ListView

    1.介绍: 使用此博客XListView模仿Android版本QQ朋友动态ListView效果.效果如下面的截图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  6. 读取手机联系人,并用listview显示

    读取手机联系人,用到的就是一个contentprovider. 数据库里面有三张重要的表 raw_contact 里面有所有联系人的数据 data 每个联系人的所有数据 mime-type 每条数据的 ...

  7. 小谈 - web模仿手机打电话与正则表达式

    昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能. 研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话 ...

  8. 简易封装手机浏览器touch事件

    做手机开发时候,简单想用一些动作,如touchLeft,touchRight等, 使用其他库文件就要加载很多不必要的东西,流量的浪费 今天简单写了封装touch的库,简单的监听一些逻辑 onTouch ...

  9. 使用火狐浏览器模仿手机浏览器,附浏览器HTTP_USER_AGENT汇总

    HTTP_USER_AGENT用来获取浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好. 改变浏览器的这个参数就可以伪装成相应的浏览器. User Agent Swit ...

随机推荐

  1. Java 14 类型信息

    14 类型信息 运行是识别对象和类的信息 两种方式RTTI 假定编译时已经知道所有的类型反射 运行时发现和使用类的信息 1 RTTI //多态 创建一个具体的对象(Circle Square Tria ...

  2. Android 数据库升级解决方案

    转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不 ...

  3. Subversion中文手册(svnbook) TortoiseSVN中文帮助手册

    文档地址 http://svndoc.iusesvn.com/

  4. Phoenix - Hbase与SQL

    Phoenix - Hbase与SQL 2016-10-23 杜亦舒 Phoenix是什么 简单来说,Phoenix 是一个可以让我们通过SQL的方式操作HBase数据库的框架. HBase是一个No ...

  5. python操作mongodb之六自定义类型存储

    from pymongo.mongo_client import MongoClient client=MongoClient('192.168.30.252',27017) client=drop_ ...

  6. 可视化工具之 IGV 使用方法

    整合基因组浏览器(IGV)是一种高性能的可视化工具,用来交互式地探索大型综合基因组数据.它支持各种数据类型,包括array-based的和下一代测序的数据和基因注释. IGV这个工具很牛,发了NB: ...

  7. Android 为PopupWindow设置动画效果

    首先定义显示效果的动画文件: <?xml version="1.0" encoding="utf-8"?> <set xmlns:androi ...

  8. 国内外做MySQL的公司

    MariaDB 基金会   Percona企业级服务   vividx      监控       webyog   监控和管理   springboksql   mysql 一体机      htt ...

  9. linux笔记:RPM软件包管理-源码包管理

    源码包和rpm包的区别: 源码包安装过程: 编译安装前准备(执行./configure --prefix=路径 来配置软件的安装位置,以及做其他的配置和检查): 编译和安装(直接在目录下执行make和 ...

  10. NOIP 2014 普及组 T4 子矩阵

    [题意] 已知:n,m,r,c,a[i][j] (1 ≤ n ≤ 16, 1 ≤ m ≤ 16,1 ≤ a[i][j] ≤1000,1 ≤ r ≤ n, 1 ≤ c ≤ m) 条件:矩阵的分值定义为每 ...