常用控件说了不少,现在说说手机开发中也常用到的画图。要掌握Android的画图,首先就要了解一下,基本用到的图形接口:
1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间;
2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多方法操作Bitamp的平台;
3.Paint,与Canvas紧密联系,是"画板"上的笔刷工具,也用于设置View控件上的样式;
4.Drawable,如果说前三者是看不见地在内存中画图,那么Drawable就是把前三者绘图结果表现出来的接口。Drawable多个子类,例如:位图(BitmapDrawable)、图形(ShapeDrawable)、图层(LayerDrawable)等。
本文主要讲解如何在ImageView画图,以及如何直接在Button(继承View的控件)上面绘制自定义图像。
直接把资源图片画出来
在ImageView上画图以及绘字
直接在控件背景上画图
main.xml的源码:
- <?xmlversion="1.0"encoding="utf-8"?>
-
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
>
-
<Buttonandroid:id="@+id/Button01"android:layout_width="fill_parent"android:layout_height="44px"android:text="显示资源图片"></Button>
-
<Buttonandroid:id="@+id/Button02"android:layout_width="fill_parent"android:layout_height="44px"android:text="显示并绘画资源图片"></Button>
-
<Buttonandroid:id="@+id/Button03"android:layout_height="44px"android:layout_width="fill_parent"android:text="在控件上绘图"></Button>
-
<ImageViewandroid:id="@+id/ImageView01"android:layout_width="wrap_content"android:layout_height="wrap_content"></ImageView>
-
</LinearLayout>
程序的源码:
- packagecom.testDraw;
-
importandroid.app.Activity;
-
importandroid.content.res.Resources;
-
importandroid.graphics.Bitmap;
-
importandroid.graphics.Bitmap.Config;
-
importandroid.graphics.BitmapFactory;
-
importandroid.graphics.Canvas;
-
importandroid.graphics.Color;
-
importandroid.graphics.Paint;
-
importandroid.graphics.Typeface;
-
importandroid.graphics.drawable.BitmapDrawable;
-
importandroid.graphics.drawable.Drawable;
-
importandroid.os.Bundle;
-
importandroid.view.View;
-
importandroid.widget.Button;
-
importandroid.widget.ImageView;
-
publicclasstestDrawextendsActivity{
- ImageViewiv;
- Buttonbtn1,btn2,btn3,btn4;
- Resourcesr;
-
@Override
-
publicvoidonCreate(BundlesavedInstanceState){
-
super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
iv=(ImageView)this.findViewById(R.id.ImageView01);
-
btn1=(Button)this.findViewById(R.id.Button01);
-
btn2=(Button)this.findViewById(R.id.Button02);
-
btn3=(Button)this.findViewById(R.id.Button03);
-
btn1.setOnClickListener(newClickEvent());
-
btn2.setOnClickListener(newClickEvent());
-
btn3.setOnClickListener(newClickEvent());
-
r=this.getResources();
- }
-
classClickEventimplementsView.OnClickListener{
-
publicvoidonClick(Viewv){
-
if(v==btn1)
-
{
-
-
Bitmapbmp=BitmapFactory.decodeResource(r,R.drawable.icon);
- iv.setImageBitmap(bmp);
- }
-
elseif(v==btn2)
- {
-
Bitmapbmp=BitmapFactory.decodeResource(r,R.drawable.icon);
-
Bitmapnewb=Bitmap.createBitmap(300,300,Config.ARGB_8888);
-
CanvascanvasTemp=newCanvas(newb);
- canvasTemp.drawColor(Color.TRANSPARENT);
-
Paintp=newPaint();
-
StringfamilyName="宋体";
- Typefacefont=Typeface.create(familyName,Typeface.BOLD);
- p.setColor(Color.RED);
- p.setTypeface(font);
-
p.setTextSize(22);
-
canvasTemp.drawText("写字。。。",50,50,p);
-
canvasTemp.drawBitmap(bmp,50,50,p);
- iv.setImageBitmap(newb);
- }
-
elseif(v==btn3)
- {
- Bitmapnewb=Bitmap.createBitmap(btn3.getWidth(),btn3.getHeight(),Config.ARGB_8888);
-
CanvascanvasTemp=newCanvas(newb);
- canvasTemp.drawColor(Color.WHITE);
-
Paintp=newPaint();
-
StringfamilyName="宋体";
- Typefacefont=Typeface.create(familyName,Typeface.BOLD);
- p.setColor(Color.RED);
- p.setTypeface(font);
-
p.setTextSize(20);
-
canvasTemp.drawText("写字。。。",30,30,p);
-
Drawabledrawable=newBitmapDrawable(newb);
- btn3.setBackgroundDrawable(drawable);
- }
- }
- }
- }
分享到:
相关推荐
Android入门第十四篇之画图.docx
入门初学CAD该怎么画图.doc
android 隐藏内置apk及Canvas画图.
excel自动画图.rar excel自动画图.rar excel自动画图.rar excel自动画图.rar excel自动画图.rar excel自动画图.rar
android 画图集合.zip
http://blog.csdn.net/u012175089/ Android新手入门2016
CAD迷你画图.rar
画图的软件,不是原版的 不过还是可以用 推荐下载 会有一点点小广告!
• Android画图学习总结(四)——Animation(上) • Android画图学习总结(四)——Animation(中) • Android画图学习总结(四)——Animation(下) • Android画图学习总结(五)——Paint Android 画图...
android opengl入门 画点 画图
画图.R.r
Android 画图程序源码.rar
安卓Android源码——画图程序源码.zip
android画图总结.pdf
Android源码——画图程序源码.zip
python画图.txt
LabVIEW画图.rar
代码是完整的关于对TXT数据的处理使用,可以方便大家画图,其中所有代码都调试完成,可以根据需要改变,可以在cmd窗口加上处理文件路径后,运行即可。
仿Windows画图.doc