我正在尝试对某些观点进行一些测试。所以我想创建一个具有特定形状的简单按钮。
当它被禁用时,按钮是一个内部没有颜色的矩形,如下所示:
我刚刚在xml中使用了一个简单的背景来赋予按钮这个形状(它在drawable中,它的名字是bg_rectangle.xml):
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview_background_shape">
<stroke android:width="2dp" android:color="#ff207d94" />
<padding android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
<corners android:radius="5dp" />
<solid android:color="#ffffffff" />
</shape>
这是xml文件,其中包含布局存放区(main_activity.xml)中的按钮:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.laptoplcvn.test1background.MainActivity">
<Button
android:background="@drawable/bg_rectangle"
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
当我点击它时,我希望按钮改变它的形状。我想要这样的东西:
我希望能够通过点击时间来编辑时间(00:00和05:15)
编辑后我希望按钮像这样:
但我没有太多的想法。我在考虑创建另外三个视图: - 按钮的一个视图为pic 1 - 按钮的一个视图为pic 2 - 按钮的一个视图为pic 3
首先,应用程序显示图片1,然后当点击它时,它使视图pic1不可见,并启用视图图片2,然后在编辑后,它生成不可见的视图图片2并显示图片3&#39;
不确定这是否有效
有什么建议吗? 提前致谢
答案 0 :(得分:0)
我会尝试简化我的回答,希望它有所帮助。
好吧,首先为Shape Changing创建一个类,如下所示:
showKeyboard()
&#13;
现在唯一的问题是,在你的照片(Pic2)中,字母“F&#39; F&#39;那时很大&#39; 00&#39;是小一点然后&#39;到&#39;甚至更小。如果你想保持这种状态,最好只为这些文本创建另一个视图,并添加红色背景,当你点击按钮时,按钮应该消失。
现在,我假设您只想更改按钮而不涉及任何其他视图。
所以,让我们来看一下Click Listener:
public void setButton(boolean Do, String text, int color) {
if (Do) {
YourButton.setText(text);
// 00:00 and 00:15 to be set on ClickListener
GradientDrawable shapeDrawable = (GradientDrawable) ContextCompat.getDrawable(mContext, listview_background_shape);
shapeDrawable.setColor(color);
YourButton.setBackground(shapeDrawable);
YourButton.getLayoutParams().height = getResources().getDimensionPixelSize(R.dimen.your_desired_height);
YourButton.getLayoutParams().width = getResources().getDimensionPixelSize(R.dimen.your_desired_width);
} else if (!Do) {
YourButton.setText(text);
YourButton.setBackgrountTint(color);
}
};
&#13;
您应该知道在int Red = ContextCompabt.getColor(mContext, R.color.your_red_color);
int DefaultColor = ContextCompabt.getColor(mContext, R.color.your_default_grey_color);
MyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if () {
setButton(true, "F" + text1 + "to" + text2 + "tap to edit", Red);
} else if () {
setButton(false, "BUTTON", DefaultColor);
}
}
});
中设置高度和宽度不会改变按钮的高度和宽度。所以你需要按钮本身来改变尺寸。
如果答案不充分并且您希望在按钮上显示另一个视图,请告诉我