gpt4 book ai didi

android - 如何在android Material 设计风格中创建按钮阴影

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:17 29 4
gpt4 key购买 nike

新的 Material 设计指南引入了提升的按钮,这些按钮正在下降漂亮的阴影。根据预览版 SDK 文档,新 SDK 中将提供 elevation 属性。但是,现在有什么方法可以达到类似的效果吗?

enter image description here

最佳答案

这对我有用。

布局有按钮

<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/button_size"
android:layout_height="@dimen/button_size"
android:background="@drawable/circular_button_ripple_selector"
android:textAppearance="?android:textAppearanceLarge"
android:textColor="@color/button_text_selector"
android:stateListAnimator="@anim/button_elevation"/>

drawble/button_selector.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true"
android:drawable="@drawable/button_selected"/>

<item android:state_pressed="true"
android:drawable="@drawable/button_pressed"/>

<item android:drawable="@drawable/button"/>

</selector>

anim/button_elevation.xml

<?xml version="1.0" encoding="utf-8"?>
<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="2dip"
android:valueTo="4dip"
android:valueType="floatType" />
</item>
<item>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueFrom="4dip"
android:valueTo="2dip"
android:valueType="floatType" />
</item>
</selector>

如果您有一个矩形按钮,那么您就完成了。但是如果你有圆形或椭圆形的按钮,那么它看起来像,

enter image description here

要从圆形或椭圆形按钮中删除,请将此代码添加到您的.java 文件中。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...........
int buttonSize = (int) getResources().getDimension(R.dimen.button_size);
Outline circularOutline = new Outline();
circularOutline.setOval(0, 0, buttonSize, buttonSize);

for (int i = 0; i < MAX_BUTTONS; i++) {
Button button = ......
.......
button.setOutline(circularOutline);
........
}
.....
}

角形被移除!!现在,它看起来就像

enter image description here

关于android - 如何在android Material 设计风格中创建按钮阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354803/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com