Desarrollo de Android vista flotante completamente personalizada y arrastrable sin permiso flotante

Un botón flotante de vista personalizado Lib tiene una buena escalabilidad, pero el diseño flotante se puede combinar con otros diseños

Se usa vibración, por lo que se requiere permiso de vibración. Este permiso se agregó al manifiesto, pero por encima de 6.0, debe agregarlo manualmente

   <uses-permission android:name="android.permission.VIBRATE" />

Instrucciones

Diseño de raíz en archivo de diseño de diseño

<?xml version="1.0" encoding="utf-8"?>
<com.isoftstone.floatlibrary.widget.FloatViewLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_float"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</com.isoftstone.floatlibrary.widget.FloatViewLayout>

 

En segundo lugar, se necesita el diseño del botón flotante. La razón por la que está escrito en el formulario de diseño es que la expansión es buena y se puede realizar cualquier estilo.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:layout_width="@dimen/floating_icon_size"
        android:layout_height="@dimen/floating_icon_size"
        android:src="@mipmap/float_btn" />
</LinearLayout>

 

Solo es necesario llamar a métodos relacionados en Activity

 

public class MainActivity extends AppCompatActivity {
    private FloatViewLayout floatViewLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        floatViewLayout = (FloatViewLayout) findViewById(R.id.layout_float);
        floatViewLayout.setmFloatView(new FloatViewImpl() {
            @Override
            public View createFloatView() {
                View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_float_view, null);
                return view;
            }

            @Override
            public int setFloatViewSideOffset() {
                return super.setFloatViewSideOffset();
            }

            @Override
            public boolean setEnableBackground() {
                return false;
            }
        });
    }
}


FloatViewImpl es una clase estática que ha implementado los métodos setFloatViewSideOffset () y setEnableBackground () y valores predeterminados dados, que puede modificar usted mismo.
Método createFloatView (): utilizado principalmente para crear el botón flotante Ver
método setFloatViewSideOffset (): utilizado para establecer el desplazamiento del botón flotante y el borde, utilizado principalmente para sangrar un determinado píxel
método setEnableBackground (): utilizado para establecer si se debe mantener la apariencia deslizante El color de fondo y darse cuenta de la desaparición del botón flotante.

 

 

 

Código fuente

Bienvenido a mi cuenta pública de WeChat:


 

Supongo que te gusta

Origin blog.csdn.net/xhf_123/article/details/77698599
Recomendado
Clasificación