答案 0 :(得分:0)
在按钮视图中的xml文件中,只需添加
android:background="@drawable/capsule_shape"
将drawable文件命名为您想要的,并将以下代码添加到您的drawable xml文件中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="30dp"
android:bottomRightRadius="30dp"
android:radius="60dp"
android:topLeftRadius="30dp"
android:topRightRadius="30dp" />
<solid android:color="#B3E5FC" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:height="60dp"
android:width="270dp" />
</shape>
注意: - 这是针对像胶囊一样的形状,您可以根据自己的选择更改宽度或高度
已更新::: 我想在我的textview中添加一个vector drawable,我将其设置为按钮
Drawable drawer_main = getResources().getDrawable(R.drawable.ic_keyboard_arrow_down_black_24dp);
Textview txtCompanyName.setCompoundDrawablesWithIntrinsicBounds(null, null,drawer_main, null);
添加textview背景,就像你在xml中为按钮所做的那样,你会得到类似这样的东西,对于状态按下你可以在onclick监听器上使用动画来动画textview中的drawable来做你想要的任何类型的动画
答案 1 :(得分:0)
上面有很多设计方法,我不知道它是一个好方法,但它可以按照要求工作
在这里,我为按钮半径形状创建了两个可绘制的形状,第二个是dimond形状,现在您将根据您的要求管理钻石形状视图的可见性,例如,如果按钮单击可见/去钻石形状。
<强> button_round_shape.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="#545454" />
<corners
android:radius="15dp" />
</shape>
<强> dimond_shape.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp">
<rotate android:fromDegrees="45">
<shape>
<size
android:width="5dp"
android:height="5dp" />
<gradient
android:startColor="#4cd964"
android:endColor="#4cd964" />
</shape>
</rotate>
</item>
</layer-list>
xml布局代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:id="@+id/btn"
android:background="@drawable/button_round_shape"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_shape"
android:layout_width="10dp"
android:visibility="gone"
android:layout_toRightOf="@+id/btn"
android:background="@drawable/dimond_shape"
android:layout_marginLeft="-25dp"
android:layout_marginTop="7dp"
android:layout_height="10dp" />
</RelativeLayout>
</RelativeLayout>
JAVA代码
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
btn_shape.setVisibility(View.VISIBLE);
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
btn_shape.setVisibility(View.GONE);
return true; // if you want to handle the touch event
}
return false;
}
});