2011-11-09 7 views
3

垂直スケーリングを使用するカスタム不確定ドロアブルを使用しようとしています。それは奇妙に見えて、それはピクセルの一番下の行が尺度がついた唯一のものであるように見えるので、このように見えます。カスタム不確定進行ドロアブルスケーリング

enter image description here

私はそれが伝統的なキャンディストライプ無限のプログレスバーのように見えるので、それが縦に拡大縮小したいです。スケーラビリティが必要なのは、カバーする領域に重み付けされているため、静的なサイズを持つことができないからです。

最小の高さを設定すると何も変更されないようです。ドロッピングを9パッチのねじに変更すると、タイリングが上がります(水平タイリングの代わりに1つのPNGになります)。

EDIT:最大読み込み

は、私は、彼らがそうのように、すべてのビットマップを包むこと、プログレスバーに表示:

 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; 
言い換えれば

、クランプ付きタイルにあなたのビットマップ力、代わりにあなたを尊重します元のタイル設定確かに私には分からない理由があります。私が考えることができるのは、自分のタイリングを行う自分のプログレスバークラスを書くことだけです。

答えて

0

おそらく、パターンを使用する必要があります。ドキュメントdrawable-resourseを参照してください。 「XMLビットマップ」を参照してください。 tileMode = "repeat"ですが、これはあなたの問題を解決すると思います。

<?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

ちょうど何かを追加すると、これを試して周りにあり、それは動作しません。しかし、提案のおかげで –

関連する問題