嗨,我想在活动中制作一个按钮。我创建了一个,但在2D like this image。
如何在3D中制作它 like this image?
答案 0 :(得分:5)
在2D按钮中,您使用的是SDK 4.0(或者它似乎就是那个),在3D按钮中您正在使用SDK 2.3.3。谷歌通过不同的Android版本更改了按钮样式,从版本从1.5到2.2的3D按钮移动,然后在2.3.3中更加平坦,现在它是最新版本的2D。
如果您想在所有Android版本中使用3D按钮,则必须创建自己的按钮样式,制作三个9-patch images(一个用于按下按钮,一个用于未按下按钮,一个用于按钮未启用)并在XML中声明一个选择器。我建议您按照this教程创建自定义按钮。
答案 1 :(得分:2)
答案 2 :(得分:1)
gradient标签允许在可绘制对象中使用颜色渐变,您可以使用它来制作3d样式的按钮
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#EAEAEA"
android:endColor="#979797" />
<corners android:radius="3dp" />
</shape>
答案 3 :(得分:0)
它是ImageButton http://developer.android.com/reference/android/widget/ImageButton.html
或样式图片。 http://developer.android.com/reference/android/R.attr.html#background
答案 4 :(得分:-1)
在这篇文章中我找到了一个很好的3D按钮解决方案:
<强>布局/ activity_main.xml中强>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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" android:gravity="center" tools:context=".MainActivity">
<强>值/ dimen.xml 强>
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="corner_radius">5dp</dimen>
<dimen name="layer_padding">10dp</dimen>
</resources>
<强>抽拉/ botao_normal.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/botao_sombra" />
<item android:bottom="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/azul" />
</shape>
</item>
</layer-list>
<强>抽拉/ seletor.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/botao_pressionado" android:paddingTop="10sp"></item>
<item android:drawable="@drawable/botao_normal" android:layout_marginTop="50dp">
</item>
</selector>
<强>抽拉/ botao_pressionado.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#00000000"/>
</shape>
</item>
<item android:top="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/Azul" />
</shape>
</item>
</layer-list>
<强>抽拉/ botao_sombra.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/AzulEscuro" />
</shape>
<强>抽拉/ botao_normal.xml 强>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/botao_sombra" />
<item android:bottom="@dimen/layer_padding">
<shape android:shape="rectangle">
<corners android:radius="@dimen/corner_radius" />
<solid android:color="@color/Azul" />
</shape>
</item>
</layer-list>
<强> MainActivity.java 强>
package uplicativos.example_3d_buttom;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
参考:http://www.uplicativos.com/blog/en/2015/11/27/3d-button-in-android-applications/
答案 5 :(得分:-2)
在布局xml文件中创建一个按钮,如下所示 -
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Click me!" />
我需要查看您的代码以正确地帮助您。