android 图片水平重复平铺(repeat x)

《=用来重复显示的图

1.最简单方式

创建wave_repeat.xml
<? xml  version = "1.0"  encoding = "utf-8" ?>
< bitmap  xmlns:android = "http://schemas.android.com/apk/res/android"
   
  android:src = "@drawable/wave"
   
  android:tileMode = "repeat"  />
在layout中使用
< View
    
android:layout_width = "match_parent"
    
android:layout_height = "wrap_content"
    
android:background = "@drawable/wave_repeat"  />
这种方式有一个问题,最后一张 重复 图片不一定是完整的图片可能只是一部分

效果图:(左右两条竖线是后来加的)


2.可确保最后一张重复图片是完整的,就是几个完整的一样的图片X轴重复
Resources res =  context .getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.
wave );
holder.
viewWave .setImageBitmap(BitmapHelper.createRepeater( screenWidth , bitmap)); //screenWidth为屏幕宽度(或显示图片的 imageview 宽度)

BitmapHelper.java 中的方法
public  static  Bitmap createRepeater( int  width, Bitmap src) {
     int  count = (width + src.getWidth() - 1) / src.getWidth();  //计算出平铺填满所给width(宽度)最少需要的重复次数
     Bitmap bitmap = Bitmap.createBitmap(src.getWidth()*count, src.getHeight(), Config.
ARGB_8888 );
     Canvas canvas =
  new  Canvas(bitmap);
     for  ( int  idx = 0; idx < count; ++idx) {
          canvas.drawBitmap(src, idx * src.getWidth(), 0,
  null );
     }

     return  bitmap;
}


在layout中设置imageview的scaleType为fitXY
< ImageView
     
android:id = "@+id/view_wave"
     
android:layout_width = "match_parent"
     
android:layout_height = "wrap_content"
     
android:scaleType = "fitXY"  />

效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值