一个带动画效果的悬浮按钮。从下往上显示,从上往下消失。

代码比较简单,实现原理也比较简单。

public class MainActivity extends Activity {

private Button btn_hide,btn_show;

private Floatingbutton floatingButton ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn_hide=(Button)findViewById(R.id.btn_hide);

btn_show=(Button)findViewById(R.id.btn_show);

floatingButton = (Floatingbutton) findViewById(R.id.button_floating_action);

btn_hide.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

floatingButton.hide();

}

});

btn_show.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

floatingButton.show();

}

});

}

}

public class Floatingbutton extends ImageButton {

private Boolean isShow = false;

private static final int TRANSLATE_DURATION_MILLIS = 200;

private final Interpolator mInterpolator = new AccelerateDecelerateInterpolator();

public Floatingbutton(Context context) {

super(context);

}

public Floatingbutton(Context context, AttributeSet attrs) {

super(context, attrs);

init(context, attrs);

}

public Floatingbutton(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

init(context, attrs);

}

public void init(Context context, AttributeSet attrs) {

show();

}

public void show() {

if (!isShow) {

isShow = true;

toggle();

}

}

public void hide() {

if (isShow) {

isShow = false;

toggle();

}

}

private void toggle() {

int height = getHeight();

int translationY = isShow ? 0 : height + getMarginBottom();

animate().setInterpolator(mInterpolator)

.setDuration(TRANSLATE_DURATION_MILLIS)

.translationY(translationY);

}

private int getMarginBottom() {

int marginBottom = 0;

final ViewGroup.LayoutParams layoutParams = getLayoutParams();

if (layoutParams instanceof ViewGroup.MarginLayoutParams) {

marginBottom = ((ViewGroup.MarginLayoutParams) layoutParams).bottomMargin;

}

return marginBottom;

}

}

android 悬浮按钮 功能实现,Android自定义悬浮按钮效果实现,带移动效果相关推荐

  1. Android Studio多功能闹钟[android源码]

    Android Studio多功能闹钟[android源码] 多功能闹钟App 简 介 主 要 技 术 界面截图 主要代码 源码链接 作者信息 多功能闹钟App 简 介 此多功能闹钟界面采用TabHo ...

  2. android悬浮按钮功能实现,Android中实现悬浮按钮

    在有些APP中我们需要实现一个悬浮按钮,比如图片浏览应用左右翻页功能,比如左侧悬浮功能按钮.我们要实现此功能时,最开始想到的就是用FrameLayout来实现,但是如果把按钮简单的放到FrameLay ...

  3. 如何调用android录屏功能吗,Android录屏功能的实现

    最近做一个Android开发的项目用到了录屏的功能,开始查阅了一些资料和博客,基本上都是在讨论ROOT的.直到后来在github上看到一个比较新的代码,才恍然发现,Android 5.0时候开放了一个 ...

  4. android中拍照功能介绍,Android实现拍照功能

    大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个"拍照"按钮.直接上代码! 1.CameraDemoActivity.java(主界面) p ...

  5. android短信功能裁剪,Android短信发送功能实现技巧分享

    如现在启动一模拟器id 号为5554,运行cmd telnet localhost 5554 输入help 可以看到很多用于模拟器中的功能命令 gsm call 134343434   // 便是呼叫 ...

  6. android清理缓存功能吗,Android清理缓存功能实现

    我们都知道在Android的设置->应用程序中可以查看应用程序的相关信息,其中有一个功能是清除缓存.如图: 怎么实现这些功能呢,从Android的setting源码中可以得到相关信息. 实现如下 ...

  7. android webview缩放功能,在Android WebView中启用/禁用缩放

    千万里不及你 在为客户开发Android应用程序时,我们遇到了同样的问题,我设法绕过了这一限制.我查看了WebView类的Android源代码,发现了updateZoomButtonsEnabled( ...

  8. android实现下载功能实现,Android开发之DownloadManager的使用

    Android 开发中,经常有从服务器下载数据的需求出现,尤其是在线更新App的情形.其基本思路是根据本地的App版本号和服务器的版本号进行比较,如果服务器版本较新,再进行提示然后下载Apk最后进行安 ...

  9. android 收藏歌曲功能,基于android的网络音乐播放器-回调实现音乐播放及音乐收藏的实现(三)...

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

最新文章

  1. 两阶段提交实际项目V1
  2. Elon Musk的OpenAI用VR训练机器人:解锁更多复杂动作!
  3. 用径向函数和球谐函数计算氢原子能级并验证维里定理
  4. MyBatis运行原理(二)SqlSession对象创建过程分析
  5. 需求: 计算一下你来到这个世界多少天 拓展:改成 生日是键盘录入的 而且可以循环录入 直到录入 exit 结束循环
  6. c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展
  7. Nginx启动/重启脚本详解
  8. 计算机的进制数思想在哪方面有应用,计算机应用技术问答题(一)
  9. C# 将已有程序封装为DLL文件,供其他程序调用
  10. Python3.6实现付费酷狗音乐免费下载(已用tkinter封装GUI)
  11. matlab根据脉冲计算转速,求不规则脉冲之前的时间间隔,进而求出电机转速
  12. vue利用Bscroll开发一个城市列表组件,带右侧字母导航栏
  13. linux命令tar -xzvf等
  14. 干货分享|视频制作技巧-视频拍摄/视频剪辑
  15. 电子祝福贺卡小程序有哪些?
  16. 对ashx请求用Gzip,Deflated压缩
  17. 修改Chrome浏览器默认背景颜色为浅绿色
  18. 供应链金融运营研究 -----内容运营
  19. Riverbed:SDN向广域网扩展为企业带来哪些价值
  20. 5G 室内融合定位白皮书

热门文章

  1. Python Flask Web 第一课 —— 基本概念和程序的基本结构
  2. [面试] 算法(二)—— 第一个出现一次的字符(第一个出现 k 次、出现最多次)
  3. SQOOP --hive-import 错误(Sqoop Hive exited with status 1)及解决
  4. 怎么得到16位校检和-c语言,16位CRC校验C语言算法.pdf
  5. python培训班靠谱吗-quot;quot;经常看到的python培训机构排名靠谱嘛?应该如何选择培训机构?...
  6. 自学python能找到工作吗-自学 Python,我是如何找到工作的?
  7. 0基础学python有多难-对于几乎是零基础的人,直接学 Python 编程合适吗?
  8. python教程视频完整版-Python教程视频完整版
  9. 为何python不好找工作-Python这么火,为何有人说Python不好找工作?
  10. python程序员月薪-据说做Python程序员,都月薪上万?