Java 在FloatingActionButton(v21)上获取圆形立面阴影
我对安卓系统的开发相当陌生,是的,我在问之前已经尝试了很多来解决这个问题 因此,我试图实现FloatingActionButton(为了简单起见,仅在v21上实现),但我无法将高程阴影取整 以下是我已经掌握的代码行: 在主activity.java(名为overview)中: main activity.xml:Java 在FloatingActionButton(v21)上获取圆形立面阴影,java,android,android-elevation,Java,Android,Android Elevation,我对安卓系统的开发相当陌生,是的,我在问之前已经尝试了很多来解决这个问题 因此,我试图实现FloatingActionButton(为了简单起见,仅在v21上实现),但我无法将高程阴影取整 以下是我已经掌握的代码行: 在主activity.java(名为overview)中: main activity.xml: <ImageButton android:id="@+id/fab" android:layout_width="@dimen/round_button_
<ImageButton
android:id="@+id/fab"
android:layout_width="@dimen/round_button_diameter"
android:layout_height="@dimen/round_button_diameter"
android:layout_gravity="end|bottom"
android:background="@drawable/oval_ripple"
android:src="@android:drawable/ic_input_add"
android:tint="@android:color/white"
android:elevation="@dimen/elevation_low"
android:stateListAnimator="@anim/button_elevation"
android:layout_alignBottom="@+id/expandableListView"
android:layout_alignEnd="@+id/expandableListView"
android:layout_marginRight="@dimen/add_button_margin"
android:layout_marginBottom="@dimen/add_button_margin"
android:contentDescription="@string/fab"
android:cropToPadding="false" />
dimens.xml
<dimen name="round_button_diameter">56dp</dimen>
<dimen name="add_button_margin">16dp</dimen>
<dimen name="elevation_low">8dp</dimen>
<dimen name="elevation_high">14dp</dimen>
56dp
16dp
8dp
14dp
oval_ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="oval">
<solid android:color="#fff1d744"/>
</shape>
</item>
button_elevation.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<objectAnimator
android:propertyName="translationZ"
android:duration="@android:integer/config_shortAnimTime"
android:valueFrom="8dp"
android:valueTo="14dp"
android:valueType="floatType"/>
</item>
<item>
<objectAnimator
android:propertyName="translationZ"
android:duration="@android:integer/config_shortAnimTime"
android:valueFrom="14dp"
android:valueTo="8dp"
android:valueType="floatType"/>
</item>
我希望我没有忘记任何重要的代码部分,并为这篇冗长的帖子感到抱歉,但我很无助。如果有帮助的话,我还可以上传AndroidStudio项目文件
来自德国的问候,感谢您的回答。:) 为什么不使用库 在build.gradle中添加此行
dependencies {
...
compile 'com.getbase:floatingactionbutton:1.3.0'
...
}
在布局xml文件中使用以下命令:
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/common_ring_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
fab:fab_colorNormal="#FF2222"
fab:fab_colorPressed="#FF0000"
fab:fab_icon="android:drawable/ic_input_add"/>
但是你要记住,你必须把FloatingButton
放在RelativeLayout
如果您有任何问题,请在评论中提问:)您尝试过我的解决方案吗?事实上,我真的不知道如何使用库:D我已经添加了您的代码,但知道Android Studio在“FloatingActionButton.class”中告诉我找不到源代码。您是否为build.gradle添加了依赖项?是的。在重新启动Android Studio后,它工作了。您知道如何更改加号图标的颜色吗?我是否有更改资源本身的权限,或者是否有xml行这样做?我现在如何获得连锁反应呢?谢谢你的帮助,我真的很感激:)太好了!我很高兴能帮助你。虽然每次我有问题都很容易问,但我不想这样做。你知道有什么可以帮助我在Android Studio中学习开发应用程序的方法吗?谁会很棒
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/common_ring_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
fab:fab_colorNormal="#FF2222"
fab:fab_colorPressed="#FF0000"
fab:fab_icon="android:drawable/ic_input_add"/>