zoukankan      html  css  js  c++  java
  • android背景平铺方式 tileMode

    创建重复的背景图片 
    在drawable目录下创建一个repeat_bg.xml: 
     
    然后在布局的xml文件中可以这样引用: 
     
    =================================================
    tileMode 属性就是用于定义背景的显示模式: 
    disabled 
    默认值,表示不使用平铺 
    clamp 
    复制边缘色彩 
    repeat 
    X、Y 轴进行重复图片显示,也就是我们说要说的平铺 
    mirror 
    在水平和垂直方向上使用交替镜像的方式重复图片的绘制
     
    ===============================================
    图片平铺的三种方式:
      1)第一种利用系统提供的api实现
       
     1 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);
     2    //bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888);
     3    BitmapDrawable drawable = new BitmapDrawable(bitmap);
     4    drawable.setTileModeXY(TileMode.REPEAT , TileMode.REPEAT );
     5    drawable.setDither(true);
     6    view.setBackgroundDrawable(drawable);
     7    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);
     8    //bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888);
     9    BitmapDrawable drawable = new BitmapDrawable(bitmap);
    10    drawable.setTileModeXY(TileMode.REPEAT , TileMode.REPEAT );
    11    drawable.setDither(true);
    12    view.setBackgroundDrawable(drawable);
     
      2)第二种我们使用xml来轻松实现
       
    < bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/img"
      android:tileMode="repeat" />
     
      3)第三种自己画出来
      
     1  < span style="white-space: normal;">< span style="white-space: pre;">public static Bitmap createRepeater(int width, Bitmap src){< /span>< /span>
     2    int count = (width + src.getWidth() - 1) / src.getWidth();
     3    Bitmap bitmap = Bitmap.createBitmap(width, src.getHeight(), Config.ARGB_8888);
     4    Canvas canvas = new Canvas(bitmap);
     5    for(int idx = 0; idx < count; ++ idx){
     6    canvas.drawBitmap(src, idx * src.getWidth(), 0, null);
     7    }
     8    return bitmap;
     9    }
    10   public static Bitmap createRepeater(int width, Bitmap src){
    11      int count = (width + src.getWidth() - 1) / src.getWidth();
    12     Bitmap bitmap = Bitmap.createBitmap(width, src.getHeight(), Config.ARGB_8888);
    13     Canvas canvas = new Canvas(bitmap);
    14     for(int idx = 0; idx < count; ++ idx){
    15     canvas.drawBitmap(src, idx * src.getWidth(), 0, null);
    16   }
    17   return bitmap;
     
    转自:http://blog.sina.com.cn/s/blog_769500f00101czfs.html
  • 相关阅读:
    C# 访问USB(HID)设备
    IPad C盘中backup文件夹占用太多空间
    fastboot
    adb get android's ip
    Reading MMS
    Bitcoin
    内存问题导致编译不过!
    串口LOG 单编kernel
    Source Insight 格式化
    framework层的空指针会让系统重启
  • 原文地址:https://www.cnblogs.com/Sharley/p/5564386.html
Copyright © 2011-2022 走看看