2011-11-09 45 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

只是添加一些東西,試圖嘗試這個,它不起作用。還是)感謝你的建議 –