相关疑难解决方法(0)

如何使用xml设置可绘制颜色的圆角半径?

在Android网站上,有一个关于颜色drawables部分.在xml中定义这些drawable如下所示:

<resources>
    <drawable name="solid_red">#f00</drawable>
    <drawable name="solid_blue">#0000ff</drawable>
    <drawable name="solid_green">#f0f0</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)

在java api中,他们有以下方法来定义圆角:

setCornerRadius(float radius)
Run Code Online (Sandbox Code Playgroud)

有没有办法在xml中设置圆角?

android drawable

99
推荐指数
3
解决办法
14万
查看次数

我如何处理Android问题9161,其中bottomRightRadius和bottomLeftRadius被交换?

我的目标:

图1:目标
图1:目标

所以,在我知道这个问题之前,这就是我尝试过的.

一,基础布局:

<LinearLayout
    android:orientation="horizontal"
    android:layout_below="@id/heading"
    android:layout_marginTop="10dp"
    android:layout_width="@dimen/horizontal_two_button_width"
    android:layout_height="@dimen/button_height_small" >

    <Button
        android:id="@+id/button_one"
        android:layout_width="0dp"
        android:layout_weight="1.0"
        android:layout_height="fill_parent"
        android:padding="10dp"
        style="@style/ButtonText"
        android:background="@drawable/button_left_green" />

    <Button
        android:id="@+id/button_two"
        android:layout_width="0dp"
        android:layout_weight="1.0"
        android:layout_height="fill_parent"
        android:padding="10dp"
        style="@style/ButtonText"
        android:background="@drawable/button_right_green" />      

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

'button_left_green'drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_left_green_pressed"
        android:state_pressed="true" />
    <item android:drawable="@drawable/button_left_green_focused"
        android:state_focused="true" />
    <item android:drawable="@drawable/button_left_green_default" />
</selector>
Run Code Online (Sandbox Code Playgroud)

并且,例如,'button_left_green_default'drawable:

<?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="@color/shadow" />
            <corners
                android:radius="5dp"
                android:topLeftRadius="5dp"
                android:topRightRadius="0dp"
                android:bottomLeftRadius="5dp"
                android:bottomRightRadius="0dp" />      
        </shape>
    </item>
    <item
        android:bottom="19dp"
        android:top="1dp"
        android:left="1dp"
        android:right="1dp" >

        <shape android:shape="rectangle">
            <gradient
                android:startColor="@color/button_left_green_top_gradient_start"
                android:endColor="@color/button_left_green_top_gradient_end" …
Run Code Online (Sandbox Code Playgroud)

android rounded-corners

18
推荐指数
2
解决办法
8566
查看次数

在android中以编程方式设置按钮半径

我有一个按钮说myButton。我想以编程方式设置按钮的左上角半径。我正在寻找类似的东西

myButton.setTopLeftCornerRadius(10);
Run Code Online (Sandbox Code Playgroud)

我在 eclipse 中寻找了一种像“setcornerradius”这样的方法,但一无所获。

android button cornerradius

6
推荐指数
1
解决办法
1万
查看次数

角半径和项目可绘制代码

我有这个xml;

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:drawable="@drawable/back" />
    <item>
        <shape>
            <solid/>
            <stroke android:width="1dip" android:color="#25786" />
            <corners android:radius="10dip"/>
            <padding android:left="0dip" android:top="0dip" 
                     android:right="0dip" android:bottom="0dip" />
        </shape>
    </item> 
</layer-list> 
Run Code Online (Sandbox Code Playgroud)

现在我通过代码这样做:

Drawable[] layers = new Drawable[2];

    ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
    sd1.getPaint().setColor(0xFFFFFFFF);
    sd1.getPaint().setStyle(Style.STROKE);
    sd1.getPaint().setStrokeWidth(1);

    layers[0] = sd1;

    LayerDrawable composite = new LayerDrawable(layers);
Run Code Online (Sandbox Code Playgroud)

但我不能为它的代码<corners android:radius="10dip"/><item android:drawable="@drawable/back" />

怎么做?

编辑1

Drawable[] layers = new Drawable[2];

ShapeDrawable sd1 = new ShapeDrawable(new RectShape());
sd1.getPaint().setColor(0xFFFFFFFF);
sd1.getPaint().setStyle(Style.STROKE);
sd1.getPaint().setStrokeWidth(1);
sd1.getPaint().setPathEffect(new CornerPathEffect(10));

layers[1] = sd1;
layers[0] = …
Run Code Online (Sandbox Code Playgroud)

android drawable

3
推荐指数
1
解决办法
4638
查看次数