6

TextView水平方向にのみ繰り返すことができるビットマップがあります。テキストビューの背景を設定し、X 軸でのみ繰り返したいと思います。調べてみると、XML ではなく、コードを介してのみ行うことができることがわかりました。私はBitmapDrawableusing:,を作成しました

BitmapDrawable bg = new BitmapDrawable(r, BitmapFactory.decodeResource(r, R.drawable.my_drawable));
bg.setTileModeX(Shader.TileMode.REPEAT);
setBackgroundDrawable(bg);

ただし、この方法でも drawable は Y 軸上で繰り返されます。これは Honeycomb 3.2 にあります。

誰かがこれに光を当てることができますか、おそらくそれが機能する例を提供できますか?

4

1 に答える 1

1

//これを試して

BitmapDrawable bg = new BitmapDrawable(r, BitmapFactory.decodeResource(r,R.drawable.my_drawable));

        int width = view.getWidth();
        int intrinsicHeight = bd.getIntrinsicHeight();
        Rect bounds = new Rect(0,0,width,intrinsicHeight);
       bg.setTileModeX(Shader.TileMode.REPEAT);
        bg.setBounds(bounds);
        Bitmap bitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), bg.getBitmap().getConfig());
        Canvas canvas = new Canvas(bitmap);
        bg.draw(canvas);
        BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
yourTxtView.setBackgroundDrawable(bg);

// これも試してみてください

bg.setTileModeX(1); //Repeats the bitmap in both direction.
bg.setTileModeY(-1);//Do not tile the bitmap. This is the default value.
于 2012-06-01T12:33:57.833 に答える