zoukankan      html  css  js  c++  java
  • drawable以及Bitmap的基本操作

    一.drawable  图形对象,可以转载常用格式的图像,可能是(位图)Bitmapdrawable,或者shapedrawable(图形),还可能是多种其他图片格式GIF,PNG,JEPG

    二.Bitmap 就是位图,用于图片的处理

    三.Canvas 意为画布,就是绘画的目标区域,用来管理Bitmp或者path路径

    下面就是讲到drawable转换成Bitmap的方法

    我所知有两种方法(两种方法谁好谁坏,得看情况)

    (1)常见的一种方法就是创建个Bitmap出来,再用画布绑定这个位图,将drawable绘到Bitmap上(此方法用于此时的drawable对象不是bitmap图像时)

    Bitmap bitmap=Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
    //创建一个size宽size高的一个位图
    
    Canvas canvas=new Canvas(bitmap);
    //将画布绑定到该位图上,为接下来的drawable绘画做准备
    
    drawable.setBounds(0,0,size,size);
    //drawable设置大小与位图相同
    
    drawable.draw(canvas);
    //将drawable通过画布画到Bitmap上去
    

    (2)另外一种方法就是直接获取Bitmap(bitmapdrawable)

    Bitmap icon=BitmapFactory.decodeResource(context.getResources(),
    R.drawable.icon_resource)
    //将drawable对象中的icon_resource图像转换成位图文件icon

    或者

    BitmapDrawable bd = (BitmapDrawable) drawable;
    //先转换成Bitdrawable         
    bitmap = bd.getBitmap();
    //再通过getBitmap()获取到Bitmap

    另外关于drawmap()方法的说明

    drawBitmap()方法:绘制图像,该方法用于在画布上绘制图像,是通过Bitmap对象来实现,当要引入图片资源时,我们可以采取该方法。

    drawBitmap (Bitmap bitmap, float left, float top, Paint paint)

    参数说明

    bitmap:Bitmap对象,代表了图像资源。

    left:图像显示的左边位置。

    top:图像显示的上边位置。

    paint:绘制时所使用的画笔。

    在上述方法1中就是采用了该方法。

    public class MyTile extends View
    {
    	public Bitmap[] bitmap1;
            private static final int size=12;
    	public MyTile(Context context, AttributeSet attrs)
    	{
    		super(context, attrs);
    		Get_Bitmap();
    		// TODO 自动生成的构造函数存根
    	}
    
    	/* (非 Javadoc)
    	 * @see android.view.View#onDraw(android.graphics.Canvas)
    	 */
    	public void Get_Bitmap()
    	{
    		bitmap1=new Bitmap[1];
    		Bitmap bitmap=Bitmap.createBitmap(size, size, Config.ARGB_8888);
    //创建一个size正方形大小的新位图		
                    Drawable   drawable=getResources().getDrawable
                    (R.drawable.greenstar);
    //获取drawable对象
    		Canvas canvas=new Canvas(bitmap);
    //Bitmap绑定画布
    		drawable.setBounds(0,0,size,size);
    //设置drawable对象大小size		
                    drawable.draw(canvas);
    //最后将drawable画到Bitmap的canvas上去		
     
                     bitmap1[0]=bitmap;
    	}
    	protected void onDraw(Canvas canvas)
    	{
    		// TODO 自动生成的方法存根
    		super.onDraw(canvas);
    		Paint paint=new Paint();
    		paint.setColor(Color.BLACK);
    	        canvas.drawBitmap(bitmap1[0], 200, 200, paint);
    	}
    
    }
      
    

      

    上述方法可以裁定图片的大小尺寸,在自定义位图大小的情况下通常采用这种方法
    未经博主同意该原创文章不得转载
  • 相关阅读:
    Kafka:主要参数详解(转)
    CXF:根据werservice代码生成WSDL(转)
    CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
    Oracle:一个用户操作多个表空间中表的问题(转)
    CentOS:设置系统级代理(转)
    Apache2.4:AH01630 client denied by server configuration
    Amabri:如何删除或停止指定的服务
    08 操作符相关
    07 Test结构
    06 退出 退出状态
  • 原文地址:https://www.cnblogs.com/Cc1231/p/4712782.html
Copyright © 2011-2022 走看看