android view视图的层叠(叠加)

Posted 当富网络

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android view视图的层叠(叠加)相关的知识,希望对你有一定的参考价值。

第一种情况: google android textview drawable
参考:           
setCompoundDrawable to add Drawables to TextView

http://mgmblog.com/2010/06/04/setcompounddrawable-to-add-drawables-to-textview/

上面是给出TextView添加Drawables时调用的方法

第二种情况: 而在图像之中想要添加文字,而又不想用一个又一个的view进行叠加怎么办呢
[java]  view plain  copy
  1. Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.a);  
  2. Bitmap bm1 = BitmapFactory.decodeResource(getResources(),R.drawable.b);  
  3. Bitmap bm2 = BitmapFactory.decodeResource(getResources(),R.drawable.c);  
  4. Drawable[] array=new Drawable[3];  
  5.   
  6. array[0] = new BitmapDrawable(bm2);  
  7. array[1] = new BitmapDrawable(bm1); //白色  
  8. array[2] = new BitmapDrawable(mytext.getDrawingCache());  
  9. LayerDrawable la=new LayerDrawable(array);  
  10.   
  11. la.setLayerInset(00000);  
  12. la.setLayerInset(1200200200200);  
  13. la.setLayerInset(2400400400400);//第一个参数2代表数组的第三个元素,为位图资源  
  14. image.setImageDrawable(la);  

上面是三个图片的叠加并显示在同一个view中,那么文字和图片如何一起叠加显示呢?
自定义视图时重载onDraw()函数提供了如下的函数
[java]  view plain  copy
  1. protected void onDraw(Canvas canvas)   
  2.   super.onDraw(canvas);  
  3.   canvas.drawColor(Color.WHITE);  
  4.         /*写字*/  
  5.   paint = new Paint();  
  6.         paint.setTextSize(24);  
  7.         canvas.drawText(getResources().getString(R.string.title), 5050, paint);  

这样直接出来的字的字体不大好看,如何解决呢? 参考: http://yarin.iteye.com/blog/518405 即可解决
来自http://jayzhou215.blog.163.com/blog/static/13271353320122104532944/

以上是关于android view视图的层叠(叠加)的主要内容,如果未能解决你的问题,请参考以下文章

Android - 当键盘为 android 5.0 (棒棒糖) 启动时调整滚动视图

我如何将一个视图显示为另一个视图的叠加层?

视图布局不会在android中的方向更改时刷新

View & Controller 一些方法的执行顺序

layer-list:Android中layer-list使用详解

从“视图”单击按钮时调用“控制器”方法