android 背景平铺

2016-07-02 14:41:07 Caster_Saber 阅读数 587

转自 http://blog.csdn.net/mengweiqi33/article/details/7723003

1.Android背景平铺

android中达到类似于windows桌面背景的平铺的效果,定义一个bitmap对象,在xml中和代码中均可,设置其tileMode为repeat。在drawable文件夹下建立如下文件tilebg.xml:

Java代码  
  1. <?xml version ="1.0" encoding ="utf-8" ?>  
  2. <bitmap xmlns:android ="http://schemas.android.com/apk/res/android"  
  3.    android:src ="@drawable/pattern"  
  4.    android:tileMode ="repeat" />  

 

其中pattern为需要平铺的图片,tileMode 属性定义平铺方向。在需要的地方设置background="@drawable/tilebg" 


 

tileMode 属性就是用于定义背景的显示模式:

disabled
默认值,表示不使用平铺
clamp
复制边缘色彩
repeat
X、Y 轴进行重复图片显示,也就是我们说要说的平铺
mirror

在水平和垂直方向上使用交替镜像的方式重复图片的绘制


2.Android 透明背景

Java代码  
  1. View findViewById(R.id.content);//找到你要设透明背景的layout 的id  
  2. v.getBackground().setAlpha(100);//0~255透明度值   

 

3.Android:ListView 自定义背景

在使用Android的ListView时候,我们通常都会添加一张背景图片,

很简单,只要在xml里面定义android:background="@drawable/background"即可。

但这样做以后,当拖动list或者 点击list空白位置的时候,ListItem都变成黑色。

这是因为默认的ListItem背景是透明的,而ListView的背景是固定不变的,

所以在 滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,

android系统为了优化这个过程,使用了一个叫做 android:cacheColorHint的属性,

在黑色主题下默认的颜色值是#191919,所以有一半是黑色的。

如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,

如果你是用图片做背景的话,那也只要将android:cacheColorHint 指定为透明(#000000)就可以了,

当然为了美化是要牺牲一些效率的


2014-07-24 13:38:32 wonengxing 阅读数 4958

转自:http://blog.sina.com.cn/s/blog_86fe5b4401015vhu.html


以LinearLayout为例,它提供的background属性将会将背景图片拉伸,相当难看。事实上我们只需做少量的修改就可以实现web编程中css背景图片的效果。来试试吧。
创建重复的背景图片
在drawable目录下创建一个repeat_bg.xml:
 

<?xml version="1.0"encoding="utf-8"?>  
 <bitmapxmlns:android="http://schemas.android.com/apk/res/android"  
android:src="@drawable/bg"  
android:tileMode="repeat" />  


然后在布局的xml文件中可以这样引用:
 
   <LinearLayout android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/repeat_bg"></LinearLayout>   

2015-09-24 10:30:38 zhuhai__yizhi 阅读数 1054
这篇文章主要介绍了Android的图片平铺效果的实现方法,主要有使用系统API、使用XML配置、自定义绘制三种方法,需要的朋友可以参考下


方法1: 系统api实现

复制代码 代码如下:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);  
//bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888);  
BitmapDrawable drawable = new BitmapDrawable(bitmap);  
drawable.setTileModeXY(TileMode.REPEAT , TileMode.REPEAT );  
drawable.setDither(true);  
view.setBackgroundDrawable(drawable); 

方法2: XML实现
xml路径:res/drawable/bg.xml
复制代码 代码如下:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"   
    android:src="@drawable/img"  
    android:tileMode="repeat" />  


方法3: 自定义绘制
复制代码 代码如下:
public static Bitmap createRepeater(int width, Bitmap src){  
  int count = (width + src.getWidth() - 1) / src.getWidth();  
  Bitmap bitmap = Bitmap.createBitmap(width, 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;  
} 


2016-06-06 16:57:00 weixin_34019929 阅读数 25
创建重复的背景图片 
在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
2014-08-22 11:42:50 cubesky 阅读数 451

android中达到类似于windows桌面背景的平铺的效果,定义一个bitmap对象,在xml中和代码中均可,设置其tileMode为repeat。在drawable文件夹下建立如下文件tilebg.xml:

<?xml version ="1.0" encoding ="utf-8" ?>

<bitmap xmlns:android ="http://schemas.android.com/apk/res/android"

   android:src ="@drawable/pattern"

   android:tileMode ="repeat" />

其中pattern为需要平铺的图片,tileMode属性定义平铺方向。在需要的地方设置background="@drawable/tilebg"

Android背景平铺

阅读数 655

没有更多推荐了,返回首页