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进行叠加怎么办呢

Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.a);
Bitmap bm1 = BitmapFactory.decodeResource(getResources(),R.drawable.b);
Bitmap bm2 = BitmapFactory.decodeResource(getResources(),R.drawable.c);
Drawable[] array=new Drawable[3];

array[0] = new BitmapDrawable(bm2);
array[1] = new BitmapDrawable(bm1); //白色
array[2] = new BitmapDrawable(mytext.getDrawingCache());
LayerDrawable la=new LayerDrawable(array);

la.setLayerInset(0, 0, 0, 0, 0);
la.setLayerInset(1, 200, 200, 200, 200);
la.setLayerInset(2, 400, 400, 400, 400);//第一个参数2代表数组的第三个元素,为位图资源
image.setImageDrawable(la);

上面是三个图片的叠加并显示在同一个view中,那么文字和图片如何一起叠加显示呢?

自定义视图时重载onDraw()函数提供了如下的函数

protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  canvas.drawColor(Color.WHITE);
        /*写字*/
  paint = new Paint();
        paint.setTextSize(24);
        canvas.drawText(getResources().getString(R.string.title), 50, 50, paint);

这样直接出来的字的字体不大好看,如何解决呢?

参考:http://yarin.iteye.com/blog/518405 即可解决

来自http://jayzhou215.blog.163.com/blog/static/13271353320122104532944/

时间: 2024-08-22 14:43:16

android view视图的层叠(叠加)的相关文章

Android开发之自定义View(视图)用法详解_Android

本文实例讲述了Android开发之自定义View(视图)用法.分享给大家供大家参考,具体如下: View类是Android的一个超类,这个类几乎包含了所有的屏幕类型.每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展.在游戏开发中往往需要自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要.在Android中,任何一个View类都只需重写onDraw 方法来实现界面显示,自定义的视图可以是复杂的3D实现,也可以是非常简单的文本形式等. 为了实现自定义View,需要创建

Android App中自定义View视图的实例教程_Android

一.基础很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 3.重写onMesure 4.重写onDraw 我把3用[]标出了,所以说3不一定是必须的,当然了大部分情况下还是需要重写的. 1.自定义View的属性,首先在res/values/  下建立一个attrs.xml

Android开发之自定义View(视图)用法详解

本文实例讲述了Android开发之自定义View(视图)用法.分享给大家供大家参考,具体如下: View类是Android的一个超类,这个类几乎包含了所有的屏幕类型.每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展.在游戏开发中往往需要自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要.在Android中,任何一个View类都只需重写onDraw 方法来实现界面显示,自定义的视图可以是复杂的3D实现,也可以是非常简单的文本形式等. 为了实现自定义View,需要创建

Android开发中获取View视图宽与高的常用方法小结

本文实例讲述了Android开发中获取View视图宽与高的常用方法.分享给大家供大家参考,具体如下: 一.根据WindowManager管理器获得 1)这两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效. 2)Activity必须如此设置才能获得view的宽高 //设置为无标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置为全屏模式getWindow().setFlags(WindowMana

Android View绘制的三大流程

本文讲的是Android View绘制的三大流程,View的工作流程主要是指measure.layout.draw这三大流程,即测量.布局和绘制,其中measure确定View的测量宽高,layout根据测量的宽高确定View在其父View中的四个顶点的位置,而draw则将View绘制到屏幕上,这样通过ViewGroup的递归遍历,一个View树就展现在屏幕上了.说的简单,下面带大家一步一步从源码中分析: Android的View是树形结构的: 基本概念 在介绍View的三大流程之前,我们必须先

Android自定义视图二:如何绘制内容

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 有的时候自持扩展一个标准的Android视图是不够的.你需要在视图上绘制你自己的内容才行.本文将会讲述如何使用Canvas类来绘制一个折线图,并会讲述如何处理尺寸和padding. 如果你还没

Android自定义视图一:扩展现有的视图,添加新的XML属性

这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 简介 这个系列详细的介绍了如何穿件Android自定义视图.主要涉及的内容有如何绘制内容,layout和measure的原理,如何继承实现view group以及如何给其子视图添加动画.第一篇

深入理解Android View(转)

  做android其实也有一段时间了,我们每个人都会碰到一些这样或那样的问题,碰到问题了就拼命百度,可是发现,我们解决问题的能力并没有提升很多,所以我才有想总结一下我项目中所用过的相关知识,并了解一下Android源代码中是如何定义这些属性的,如何去实现的.以后再碰到类似的问题,我该如何实现.本人也不常写博客,希望各位博友能指点,分享,并提出博客中不正确的地方,共勉!    首先我发一份我做的关于Android View深入实现的的XMind的思维导图,可以帮助我一起整理思路,若是博友有什么想

android View层的绘制流程

还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系: 看见没有,如上图中id为content的内容就是整个View树的结构,所以对每个具体View对象的操作,其实就是个递归的实现. 前面<Android触摸屏事件派发机制详解与源码分析一(View篇)>文章的3-1小节说过Android中的任何一个布局.任何一个控件其实都