2011-11-09 43 views
3

试图使用将使用垂直缩放的自定义不确定drawable。它看起来很奇怪,看起来底部的像素行是唯一缩放的,所以它看起来像这样。自定义不确定进度可绘制缩放

enter image description here

我希望它是垂直扩展,所以它看起来像一个传统的糖果条纹不确定进度条。我需要它的可扩展性的原因是它将覆盖的区域将被加权,所以我不能有一个静态大小。

设置最小高度似乎没有改变。改变drawables到九拼接螺丝起来的瓦片(它变成一个PNG覆盖整个区域而不是水平平铺,最后我需要水平平铺和垂直缩放)

任何人都有我的想法吗?

编辑:

读了起来,我看到进度条,它们封装所有的位图,如下所示:

 final Bitmap tileBitmap = ((BitmapDrawable) drawable).getBitmap(); 
     if (mSampleTile == null) { 
      mSampleTile = tileBitmap; 
     } 

     final ShapeDrawable shapeDrawable = new ShapeDrawable(getDrawableShape()); 

     final BitmapShader bitmapShader = new BitmapShader(tileBitmap, 
       Shader.TileMode.REPEAT, Shader.TileMode.CLAMP); 
     shapeDrawable.getPaint().setShader(bitmapShader); 

     return (clip) ? new ClipDrawable(shapeDrawable, Gravity.LEFT, 
       ClipDrawable.HORIZONTAL) : shapeDrawable; 

。换句话说,您的位图与夹紧瓦力,而不是尊重你原始的瓷砖设置。我是s这是我不知道的原因。我能想到的唯一想法是编写我自己的进度条类,它自己做平铺。

回答

0

可能你应该使用模式。请参阅文档drawable-resourse请查看文档的“XML位图”部分的 部分。有一个tileMode =“重复”,我认为这会解决你的问题。

<?xml version="1.0" encoding="utf-8"?> 
<bitmap 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@[package:]drawable/drawable_resource" 
    android:antialias=["true" | "false"] 
    android:dither=["true" | "false"] 
    android:filter=["true" | "false"] 
    android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | 
         "fill_vertical" | "center_horizontal" | "fill_horizontal" | 
         "center" | "fill" | "clip_vertical" | "clip_horizontal"] 
    android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] /> 
+0

只是添加一些东西,试图尝试这个,它不起作用。还是)感谢你的建议 –