精华内容
下载资源
问答
  • Android 悬浮按钮实现

    千次下载 热门讨论 2014-12-05 17:24:05
    Android 悬浮按钮 悬浮框 浮动按钮
  • 1,在baseactivity中写逻辑代码java//添加悬浮窗口WindowManagermWindowManager;WindowManager.LayoutParamswmParams;LinearLayoutmFloatLayout;//悬浮图标publicImageViewmFloatView;/***屏幕的宽度和高度*/...

    1,在baseactivity中写逻辑代码java

    //添加悬浮窗口

    WindowManager mWindowManager;

    WindowManager.LayoutParams wmParams;

    LinearLayout mFloatLayout;

    //悬浮图标

    public ImageView mFloatView;

    /**

    * 屏幕的宽度和高度

    */

    protected int mScreenWidth;

    protected int mScreenHeight;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    //获取屏幕宽高

    DisplayMetrics metric = new DisplayMetrics();

    getWindowManager().getDefaultDisplay().getMetrics(metric);

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

    mScreenWidth = metric.widthPixels;

    mScreenHeight = metric.heightPixels;

    //getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);

    }/**

    * 用法直接在须要使用的界面里引用该函数,而后给该函数添加监听事件

    * createFloatView(Rcjc.this);

    * mFloatView.setOnClickListener;

    *

    */

    //添加悬浮按钮

    @SuppressWarnings("unused")

    public void createFloatView(Context cx)

    {

    //获取LayoutParams对象

    wmParams = new WindowManager.LayoutParams();

    //获取的是LocalWindowManager对象

    mWindowManager = this.getWindowManager();

    //mWindowManager = getWindow().getWindowManager();

    //获取的是CompatModeWrapper对象

    //mWindowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);

    wmParams.type = LayoutParams.TYPE_PHONE;

    wmParams.format = PixelFormat.RGBA_8888;;

    wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE;

    wmParams.gravity = Gravity.LEFT| Gravity.TOP;

    wmParams.x = mScreenWidth-50;

    wmParams.y = 70;

    wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;

    wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;

    LayoutInflater inflater = this.getLayoutInflater();//LayoutInflater.from(getApplication());

    mFloatLayout = (LinearLayout) inflater.inflate(R.layout.floating, null);

    mWindowManager.addView(mFloatLayout, wmParams);

    //setContentView(R.layout.main);

    mFloatView = (ImageView)mFloatLayout.findViewById(R.id.floatButton);

    //绑定触摸移动监听

    mFloatView.setOnTouchListener(new OnTouchListener()

    {

    @Override

    public boolean onTouch(View v, MotionEvent event) {

    // TODO Auto-generated method stub

    wmParams.x = (int)event.getRawX() - mFloatLayout.getWidth()/2;

    //25为状态栏高度

    wmParams.y = (int)event.getRawY() - mFloatLayout.getHeight()/2 - 40;

    mWindowManager.updateViewLayout(mFloatLayout, wmParams);

    return false;

    }

    });

    2,布局文件android

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    android:id="@+id/floatButton"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:src="@drawable/floatbtn"

    />

    展开全文
  • 主要介绍了Android开发悬浮按钮 Floating ActionButton的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了Android利用悬浮按钮实现翻页效果的相关资料,需要的朋友可以参考下
  • 主要为大家详细介绍了Android悬浮按钮实现点击并显示/隐藏多功能列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android悬浮菜单按钮FloatingActionButton实现,可直接拿到项目中集成使用,希望给大家带来帮助
  • 主要介绍了Android中FloatingActionButton实现悬浮按钮实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • Android悬浮菜单按钮FloatingActionButton实现,可直接拿到项目中集成使用。希望大家多多关注我的博客:https://blog.csdn.net/k571039838k 谢谢大家
  • Android实现悬浮按钮

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

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

    那么如何才能让按钮放到布局的左侧中间位置呢,开始时想把按钮高度设置成match_parent,然后图片垂直居中,但是这样整个最左侧的部分都是按钮了,显然会影响其他功能的使用,后来想哪个组件才能自由的让子控件放到想放的位置呢,这个得是RelativeLayout了吧。于是在FrameLayout中放了一个RelavtiveLayout中,然后把按钮放到里面,Layout Parameters中的Align Parent Left设置成true,Center Vertical设置成true,再看一下,一个居中的悬浮按钮就弄好了。

    同样的方式可以设置其他需要的悬浮按钮了。

    附上实现的xml布局代码

    XHTML

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="com.example.hoverbuttontest.MainActivity" >

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    android:id="@+id/button1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentLeft="true"

    android:layout_centerVertical="true"

    android:text="Button" />

    android:id="@+id/button2"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignBottom="@+id/button1"

    android:layout_alignParentRight="true"

    android:layout_centerVertical="true"

    android:text="Button" />

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="com.example.hoverbuttontest.MainActivity">

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:id="@+id/button1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentLeft="true"

    android:layout_centerVertical="true"

    android:text="Button"/>

    android:id="@+id/button2"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignBottom="@+id/button1"

    android:layout_alignParentRight="true"

    android:layout_centerVertical="true"

    android:text="Button"/>

    打赏

    f69872ab5631b766bfb8c62b6b7d28fa.png微信扫一扫,打赏作者吧~

    展开全文
  • 先看一下Android悬浮按钮点击回到顶部的效果: FloatingActionButton是Design Support库中提供的一个控件,这个控件可以轻松实现悬浮按钮的效果 首先,要在项目中使用这个悬浮按钮就要先把design这个包导入项目 ...
  • Android 悬浮按钮 悬浮框 浮动按钮Android 悬浮按钮 悬浮框 浮动按钮Android 悬浮按钮 悬浮框 浮动按钮Android 悬浮按钮 悬浮框 浮动按钮
  • 主要为大家详细介绍了Android实现系统级悬浮按钮的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Android自定义APP全局悬浮按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • android悬浮实现

    2018-03-07 11:41:31
    android悬浮实现,跟360的桌面加速球一样能飘在桌面实现绚丽的效果。
  • 本篇文章主要介绍了android 应用内部悬浮可拖动按钮简单实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要介绍了Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法,结合实例形式分析了Android FloatingActionButton悬浮按钮的基本功能、布局、使用方法及操作注意事项,需要的朋友可以参考下
  • Android悬浮按钮实现(记录)

    千次阅读 2019-06-19 14:16:41
    Android自带组件:FloatingActionButton 效果图: 如何使用: <android.support.design.widget.FloatingActionButton android:id="@+id/NavigationView_FABtn" android:layout_width="40dp" android:...

    Android自带组件:FloatingActionButton

    效果图:

    如何使用:

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/NavigationView_FABtn"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@mipmap/icon_add"
        app:elevation="3dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintHorizontal_bias="0.9"
        app:layout_constraintVertical_bias="0.9"/>

    备注:

    (1)elevation属性可以控制投影效果的高度。

    (2)点击事件的话,和普通的Button一样。

    展开全文
  • Android 悬浮按钮 两种实现方法

    千次阅读 2019-10-23 10:09:16
    最近android中有很多新的设计规范被引入,最流行的莫过于被称作Promoted Actions的设计了,Promoted Actions是指一种操作按钮,它不是放在actionbar中,而是直接在可见的UI布局中(当然这里的UI指的是setContentView...

    最近android中有很多新的设计规范被引入,最流行的莫过于被称作Promoted Actions的设计了,Promoted Actions是指一种操作按钮,它不是放在actionbar中,而是直接在可见的UI布局中(当然这里的UI指的是setContentView所管辖的范围)。因此它更容易在代码中被获取到(试想如果你要在actionbar中获取一个菜单按钮是不是很难?),Promoted Actions往往主要用于一个界面的主要操作,比如在email的邮件列表界面,promoted action可以用于接受一个新邮件。promoted action在外观上其实就是一个悬浮按钮,更常见的是漂浮在界面上的圆形按钮,一般我直接将promoted action称作悬浮按钮,英文名称Float Action Button 简称(FAB,不是FBI哈)。

    float action button是android l中的产物,但是我们也可以在更早的版本中实现。假设我这里有一个列表界面,我想使用floataction button代表添加新元素的功能,界面如下:
    在这里插入图片描述
    http://a3ab771892fd198a96736e50.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/09/android_floating_action_button_14.png

    要实现float action button可以有多种方法,一种只适合android L,另外一种适合任意版本。

    用ImageButton实现
    这种方式其实是在ImageButton的属性中使用了android L才有的一些特性:

    <ImageButton
    
    android:layout_width="56dp"
    
    android:layout_height="56dp"
    
    android:src="@drawable/plus"
    
    android:layout_alignParentBottom="true"
    
    android:layout_alignParentRight="true"
    
    android:layout_marginRight="16dp"
    
    android:layout_marginBottom="16dp"
    
    android:tint="@android:color/white"
    
    android:id="@+id/fab"
    
    android:elevation="1dp"
    
    android:background="@drawable/ripple"
    
    android:stateListAnimator="@anim/fab_anim"
    
    />
    

    仔细一点,你会发现我们将这个ImageButton放到了布局的右下角,为了实现float action button应该具备的效果,需要考虑以下几个方面:

    ·Background

    ·Shadow

    ·Animation

    背景上我们使用ripple drawable来增强吸引力。注意上面的xml代码中我们将background设置成了@drawable/ripple ,ripple drawable的定义如下:

    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    
        <item>
    
            <shape android:shape="oval">
    
                <solid android:color="?android:colorAccent"
    />
    
            </shape>
    
        </item>
    
    </ripple>
    

    既然是悬浮按钮,那就需要强调维度上面的感觉,当按钮被按下的时候,按钮的阴影需要扩大,并且这个过程是渐变的,我们使用属性动画去改变translatioz。

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item
    
            android:state_enabled="true"
    
            android:state_pressed="true">
    
            <objectAnimator
    
                android:duration="@android:integer/config_shortAnimTime"
    
                android:propertyName="translationZ"
    
                android:valueFrom="@dimen/start_z"
    
                android:valueTo="@dimen/end_z"
    
                android:valueType="floatType"
    />
    
        </item>
    
        <item>
    
            <objectAnimator
    
                android:duration="@android:integer/config_shortAnimTime"
    
                android:propertyName="translationZ"
    
                android:valueFrom="@dimen/end_z"
    
                android:valueTo="@dimen/start_z"
    
                android:valueType="floatType"
    />
    
        </item>
    
    </selector>
    

    使用自定义控件的方式实现悬浮按钮
    这种方式不依赖于android L,而是码代码。

    首先定义一个这样的类:

    public class CustomFAB extends ImageButton {
    
    ...
    
    }
    然后是读取一些自定义的属性(假设你了解styleable的用法)
    
    private void init(AttributeSet attrSet) {
    
        Resources.Theme theme = ctx.getTheme();
    
        TypedArray arr = theme.obtainStyledAttributes(attrSet, R.styleable.FAB, 0, 0);
    
        try
    {
    
            setBgColor(arr.getColor(R.styleable.FAB_bg_color, Color.BLUE));
    
            setBgColorPressed(arr.getColor(R.styleable.FAB_bg_color_pressed, Color.GRAY));
    
            StateListDrawable sld = new
    StateListDrawable();
    
            sld.addState(new
    int[] {android.R.attr.state_pressed}, createButton(bgColorPressed));
    
            sld.addState(new
    int[] {}, createButton(bgColor));
    
            setBackground(sld);
    
        }
    
        catch(Throwable t) {}
    
        finally {
    
             arr.recycle();
    
        }
    
    }
    

    在xml中我们需要加入如下代码,一般是在attr.xml文件中。

    <?xml version="1.0"
    encoding="utf-8"?>
    
    <resources>
    
        <declare-styleable name="FAB">
    
            <!-- Background color -->
    
            <attr name="bg_color"
    format="color|reference"/>
    
            <attr name="bg_color_pressed"
    format="color|reference"/>
    
        </declare-styleable>
    
    </resources>
    

    使用StateListDrawable来实现不同状态下的背景

    
    private Drawable createButton(int color) {
    
        OvalShape oShape = new
    OvalShape();
    
        ShapeDrawable sd = new
    ShapeDrawable(oShape);
    
        setWillNotDraw(false);
    
        sd.getPaint().setColor(color);
    
        OvalShape oShape1 = new
    OvalShape();
    
        ShapeDrawable sd1 = new
    ShapeDrawable(oShape);
    
        sd1.setShaderFactory(new
    ShapeDrawable.ShaderFactory() {
    
            @Override
    
            public Shader resize(int width, int height) {
    
                LinearGradient lg = new
    LinearGradient(0,0,0, height,
    
                new
    int[] {
    
                    Color.WHITE,
    
                    Color.GRAY,
    
                    Color.DKGRAY,
    
                    Color.BLACK
    
                }, null, Shader.TileMode.REPEAT);
    
                return
    lg;
    
            }
    
        });
    
        LayerDrawable ld = new
    LayerDrawable(new
    Drawable[] { sd1, sd });
    
        ld.setLayerInset(0, 5, 5, 0, 0);
    
        ld.setLayerInset(1, 0, 0, 5, 5);
    
        return
    ld;
    
    }
    

    最后将控件放xml中:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        xmlns:tools="http://schemas.android.com/tools"
    
        xmlns:custom="http://schemas.android.com/apk/res/com.survivingwithandroid.fab"
    
        android:layout_width="match_parent"
    
        android:layout_height="match_parent"
    
        android:paddingLeft="@dimen/activity_horizontal_margin"
    
        android:paddingRight="@dimen/activity_horizontal_margin"
    
        android:paddingTop="@dimen/activity_vertical_margin"
    
        android:paddingBottom="@dimen/activity_vertical_margin"
    
        tools:context=".MyActivity">
    
    ...
    
        <com.survivingwithandroid.fab.CustomFAB
    
            android:layout_width="56dp"
    
            android:layout_height="56dp"
    
            android:src="@android:drawable/ic_input_add"
    
            android:layout_alignParentBottom="true"
    
            android:layout_alignParentRight="true"
    
            android:layout_marginRight="16dp"
    
            android:layout_marginBottom="16dp"
    
            custom:bg_color="@color/light_blue"
    
            android:tint="@android:color/white"
    
         />
    
    </RelativeLayout>
    
    展开全文
  • 前段时间在看属性动画,恰巧这个按钮的效果可以用属性动画实现,下面通过本文给大家分享adroid仿知乎悬浮功能按钮FloatingActionButton效果,需要的朋友参考下吧
  • Android系统悬浮窗的实现,以button按钮为例,实现悬浮窗的展示,以及悬浮窗的拖动效果,对Android 6.0以下、Android 6.0以上,以及Android 8.0以上做了处理,可以适应大部分Android版本
  • android悬浮按钮

    千次下载 热门讨论 2015-01-15 14:20:54
    android 悬浮按钮,本功能在android 5.0实现是很容易的 但是在现有的版本上只能用代码堆积了。
  • 主要介绍了Android自定义可拖拽的悬浮按钮DragFloatingActionButton,需要的朋友可以参考下
  • 主要为大家详细介绍了Android利用WindowManager生成悬浮按钮及悬浮菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,311
精华内容 3,324
关键字:

android悬浮按钮实现