两种颜色的带状背景?
我想创建这样的背景下底栏:两种颜色的带状背景?
我目前使用下面的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient android:endColor="#000000" android:startColor="#696969"
android:centerColor="#696969" android:angle="270" />
<stroke android:color="#696969" />
<padding android:left="2dp" android:top="3dp" android:right="2dp"
android:bottom="3dp" />
</shape>
</item>
</selector>
但输出看起来像这样...:
如何获取,双色backgro和? 请建议.. 谢谢
正如其他人指出的那样,在这种情况下九块卡片将是理想的(并且不会占用太多内存)。解决XML并不是最佳选择。下面是一些你可以尝试:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:bottom="20dp">
<shape android:shape="rectangle" >
<size android:height="20dp" />
<solid android:color="#ff0000" />
</shape>
</item>
<item android:top="20dp">
<shape android:shape="rectangle" >
<size android:height="20dp" />
<solid android:color="#0000ff" />
</shape>
</item>
</layer-list>
在这种情况下,你的观点被认为是beeing 40dp高
这是一个图层列表,在不同颜色的两个街区。 XML方法的问题在于,无法将块的高度调整为百分比(= 50%)。您必须在dp中使用实际视图大小的一半。这意味着每次更改视图高度/布局时都必须调整此可绘制对象。一个ninepatch会自动调整到这个。
您可以创建一个图像并沿x坐标重复。
您可以使用9png图像作为背景。
看到http://developer.android.com/guide/developing/tools/draw9patch.html
编辑:
您可以按照本教程http://android10.org/index.php/articlesother/279-draw-9-patch-tutorial
谢谢,但我不想使用图像...我寻找一些编程方式... :) – 2012-01-04 13:03:20
创建gradient.xml在/ RES /绘制:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFFFF"
android:endColor="#00000000"/>
</shape>
,并在/ RES您的main.xml布局文件/ layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient">
</LinearLayout>
您可以指定th通过替换android:startColor
和android:endColor
来代替android:角度值和开始/结束颜色来改变角度。
45角?这不会产生nibha所要求的。 – TryTryAgain 2012-01-04 13:05:00
但我们需要使用开始颜色和结束颜色.. \ – 2012-01-04 13:12:00
http://www.dibbus.com/2011/02/gradient-buttons-for-android/通过这个代码,它可能会帮助你.... – 2012-01-04 13:21:54
我找到了一个解决方案给你,如果你愿意放弃使用XML来绘制...
从图形:Gradients and shadows on buttons
这就是你想要的!但不同的颜色,大小,并作为一个按钮...
Bitmap bmResult = Bitmap.createBitmap(buttonWidth, buttonHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmResult);
Paint paint = new Paint();
paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0xFF284560, 0xFF284060, TileMode.MIRROR));
canvas.drawPaint(paint);
paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0x55FFFFFF, 0x22FFFFFF, TileMode.CLAMP));
paint.setMaskFilter(new BlurMaskFilter(3, BlurMaskFilter.Blur.NORMAL));
canvas.drawRect(0, 0, bmResult.getWidth(), bmResult.getHeight()/2, paint)
...改变颜色,当然。
我不确定您是否可以使用XML布局并单独引用此Java Button,或者您将不得不最终使用Java完成整个布局而不是XML ......这将是另一个问题所以。
希望有所帮助。虽然,这可能是我的无知,但我也建议去9patch路线。
P.S.我是一个全新的Java和使用位图,所以我会发布一个更全面的解决方案为您的情况,如果我把它全部搞清楚。
检查此.. http://*.com/a/9393867/1188978 – SkyWalker 2013-12-03 12:11:55