2012-09-07 83 views
0

我想通过extendong Button类来定制android中的通用按钮。在android中定制按钮

我只是想要默认的android按钮将显示在按钮的中间水平线。

因此,这是抽签方法实现:

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    Paint paint = new Paint(); 
    paint.setColor(Color.RED); 
    canvas.drawLine(0, getHeight()/2, getWidth(), getHeight()/2, paint); 
} 

,这是插在布局

<Button 
    class="com.example.backproject.ShadowButton" 
android:background="@android:color/transparent" 
    android:id="@+id/myButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

</Button> 

的按钮,但按钮不会改变。

为什么?

TY提前!

+0

请发表您的ShadowButton类 –

回答

2

您已经创建自定义的按钮,然后使用类似这样的

<com.example.backproject.ShadowButton 
    android:background="@android:color/transparent" 
    android:id="@+id/myButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
2

使用此<com.example.backproject.ShadowButton,而不是<Button在你的XML文件,并删除类=“com.example.backproject.ShadowButton”

编辑:代码

<com.example.backproject.ShadowButton 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@android:color/transparent" 
    android:id="@+id/myButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
+0

我有一个例外。 错误膨胀类com.example.backproject.ShadowButton 我需要将此类添加到其他文件吗? –

+0

同样的问题在这里! –

+0

我认为问题在于您需要使用AttributeSet实现构造函数,因为这是由LayoutInflator使用的构造函数: –