相关疑难解决方法(0)

如何在两个小部件/布局之间添加新的"浮动操作按钮"

我想你已经看到了新的Android设计指南,新的"浮动动作按钮"又名"FAB"

例如这个粉红色的按钮:

在此输入图像描述

我的问题听起来很愚蠢,我已经尝试了很多东西,但是将这个按钮放在两个布局的交叉点上的最佳方法是什么?

在上面的例子中,这个按钮完全位于我们可以想象的ImageView和relativeLayout之间.

我已经尝试了很多调整,但我确信有一个正确的方法来做到这一点.

android floating-action-button android-coordinatorlayout

282
推荐指数
9
解决办法
32万
查看次数

Android"海拔"没有显示阴影

我有一个ListView,每个列表项我希望它在它下面显示一个阴影.我正在使用Android Lollipop的新高程功能在View上设置一个我想要投射阴影的Z,并且我已经使用ActionBar(技术上是Lollipop中的工具栏)有效地做到了这一点.我正在使用Lollipop的高程,但由于某种原因,它没有在列表项下显示阴影.以下是每个列表项的布局设置方式:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    style="@style/block"
    android:gravity="center"
    android:layout_gravity="center"
    android:background="@color/lightgray"
    >

    <RelativeLayout
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:elevation="30dp"
        >

        <ImageView
            android:id="@+id/documentImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/alphared"
            android:layout_alignParentBottom="true" >

            <appuccino.simplyscan.Extra.CustomTextView
                android:id="@+id/documentName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                app:typeface="light"
                android:paddingLeft="16dp"
                android:paddingTop="8dp"
                android:paddingBottom="4dp"
                android:singleLine="true"
                android:text="New Document"
                android:textSize="27sp"/>

            <appuccino.simplyscan.Extra.CustomTextView
                android:id="@+id/documentPageCount"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                app:typeface="italic"
                android:paddingLeft="16dp"
                android:layout_marginBottom="16dp"
                android:text="1 page"
                android:textSize="20sp"/>

        </LinearLayout>

    </RelativeLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但是,这是它如何显示列表项,没有阴影: 在此输入图像描述

我也试过以下无济于事:

  1. 将高程设置为ImageView和TextViews本身而不是父布局.
  2. 将背景应用于ImageView.
  3. 用TranslationZ代替Elevation.

android shadow material-design android-elevation

253
推荐指数
9
解决办法
21万
查看次数

Android的涟漪效应 - 按钮的触摸反馈 - 使用XML

我试图了解如何为按钮和其他视图实现"涟漪效应 - 触摸反馈".我查看了与SO上的Ripple触摸效果相关的问题,并对其进行了一些了解.我能够使用这个java代码成功获得涟漪效应.

import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RadialGradient;
import android.graphics.Region;
import android.graphics.Shader;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.AccelerateInterpolator;
import android.widget.Button;

public class MyButton extends Button {

    private float mDownX;
    private float mDownY;

    private float mRadius;

    private Paint mPaint;

    public MyButton(final Context context) {
        super(context);
        init();
    }

    public MyButton(final Context context, final AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public MyButton(final Context context, final AttributeSet attrs,
            final int defStyle) { …
Run Code Online (Sandbox Code Playgroud)

xml android material-design rippledrawable android-5.0-lollipop

49
推荐指数
5
解决办法
9万
查看次数

Android L波纹触控效果如何?

我有一个带有高程的圆角矩形,可以投射阴影,就像这里的例子一样:http://developer.android.com/preview/material/views-shadows.html#shadows

这是我的形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/white" />
    <corners android:radius="6dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我希望获得其他所有内容的漂亮"涟漪"触摸效果,但是如果将其设置为视图的背景,则不会给出触摸反馈.形状保持白色.

所以,我把它变成了layer-list:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="@android:color/white" />
            <corners android:radius="6dp" />
        </shape>
    </item>
    <item android:drawable="?android:selectableItemBackground" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)

现在,当我点击它时,我得到了很好的触摸反馈,但是有一个问题.

圆角矩形的轮廓丢失了.它仍然可以将白色圆角矩形绘制得很精细,但是阴影会被渲染为非圆角矩形(方形边缘),并且波纹会一直延伸到角落之外:

坏角落

它在这里看起来并不太可怕,但在设备上它非常丑陋和令人反感.

有没有办法来解决这个问题?Outline第一个链接的部分似乎是我想要的,但我无法弄清楚如何实现它.

android android-5.0-lollipop

42
推荐指数
2
解决办法
4万
查看次数

如何在Lollipop中使用setOutlineProvider而不是setOutline

对于早期的L Preview,有一些示例如下所示添加到您的代码中以使用FAB(浮动操作按钮).

但不幸的是,我不能使用相同的代码来实现FAB,因为不再支持setOutline方法,但它似乎已被替代方法'fab.setOutlineProvider(ViewOutlineProvider);'所取代.任何人都可以解释如何使用它?...

这可能是我想念的非常简单,但任何帮助都会非常感激.

// Outline
int size = getResources().getDimensionPixelSize(R.dimen.fab_size);
Outline outline = new Outline();
outline.setOval(0, 0, size, size);

Button fab = (Button) findViewById(R.id.fab);
fab.setOutline(outline);
fab.setClipToOutline(true);
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-layout material-design android-5.0-lollipop

11
推荐指数
2
解决办法
2万
查看次数

如何为ImageButton添加阴影?

这是我第一次发帖.我一直在使用这个网站作为一个很好的资源.但我遇到了一个问题.我尝试过将阴影效果应用到我的ImageButton但是它有效吗?我想要实现的是你可以在浮动气泡上看到的阴影(材料设计).我有一个圆形的ImageButton,但我希望在它周围添加一个阴影.我怎样才能做到这一点?

这是circle_button.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#C62666"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

这是circle_button_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#E92D6C"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

这是我的选择器,它将两个drawable组合成一个.button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/circle_button"
        android:state_focused="true"
        android:state_pressed="true" />
    <item android:drawable="@drawable/circle_button_pressed"
        android:state_focused="false"
        android:state_pressed="true" />
    <item android:drawable="@drawable/circle_button_pressed"
            android:state_focused="true" />
    <item android:drawable="@drawable/circle_button"
        android:state_focused="false"
        android:state_pressed="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

这就是我将它应用到我的ImageButton的方式

<ImageButton
           android:id="@+id/btn_apply"
           android:layout_width="68dp"
           android:layout_height="68dp"
           android:layout_alignParentTop="true"
           android:layout_alignRight="@+id/scrollView1"
           android:layout_marginRight="45dp"
           android:layout_marginTop="94dp"
           android:adjustViewBounds="true"
           android:background="@drawable/button"
           android:scaleType="fitCenter"
           android:src="@drawable/apply_two" />
Run Code Online (Sandbox Code Playgroud)

又一次呢?如何在按钮上添加阴影?谢谢你的时间.

html css java android button

8
推荐指数
1
解决办法
8385
查看次数