在背景着色时区分textview和按钮

时间:2014-05-14 11:44:59

标签: android button textview

我有一个horizontal linear layout有一个textviewbutton但是当我应用背景颜色按钮时,就像文本视图一样,我找不到两者之间的任何差异。

我想格式化我的按钮,以便它与文本视图的识别方式不同。

有按钮和文本视图的布局图。

enter image description here

在上图中,Selected Option是textview,Update是按钮,因为你可以看到两者看起来很相似。

任何人都可以帮助我,因为我不知道如何做到这一点。

感谢您的时间。

3 个答案:

答案 0 :(得分:1)

ButtonTextView之间几乎没有区别。 Button仅从TextView延长。如果您查看Button

的源代码,可以清除您的疑问
public class Button extends TextView {
    public Button(Context context) {
        this(context, null);
    }

    public Button(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.buttonStyle);
    }

    public Button(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
        super.onInitializeAccessibilityEvent(event);
        event.setClassName(Button.class.getName());
    }

    @Override
    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfo(info);
        info.setClassName(Button.class.getName());
    }
}

编辑:

但是,如果您只想更改Button的背景颜色而不更改默认样式,则可以执行以下操作,

btnName.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFAA0000));

如果在xml文件中有任何内容,请务必从android:background=""中删除android:src=""Button

此代码仅更改背景颜色而不影响默认样式。您可以使用标准HEX颜色代码更改背景颜色。

参考

Standard Android Button with a different color

答案 1 :(得分:1)

查看此sample它可以应用于按钮的各种样式。 一切都只用颜色完成。

答案 2 :(得分:0)

// Try this way,hope this will help you..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:background="@color/button_default"> // set your background color here
        <TextView
            android:id="@+id/txtSelectedOption"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Selected Option"/>
    </LinearLayout>

    <Button
        android:id="@+id/btnUpdate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Update"/>

</LinearLayout>