`
wang_peng1
  • 浏览: 3944296 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 画图-----直接引用图像

阅读更多
   在这里写文章啥都不为,就是写自己的总结,不管错误和正确也好,都是自己的,写对写错与他人无关,也不希望别人回帖,谢谢。
     以后的文章都是sdk自带的 没有自己的任何内容。
import java.io.InputStream;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Shader;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;

public class AlphaBitmap extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new SampleView(this));
    }
   
    private static class SampleView extends View {
        private Bitmap mBitmap;
        private Bitmap mBitmap2;
        private Bitmap mBitmap3;
        private Shader mShader;
       
        private static void drawIntoBitmap(Bitmap bm) {
            float x = bm.getWidth();
            float y = bm.getHeight();
       // 建一个有制定对象的画布
            Canvas c = new Canvas(bm);
            Paint p = new Paint();
       // 主要用来消除边缘吧从效果上看 好像false的话有毛边
            p.setAntiAlias(true);
           
            p.setAlpha(0x555555);//灰色
            c.drawCircle(x/2, y/2, x/2, p);
           
            p.setAlpha(0x0000ff);//蓝色
           p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
//    下面是字体的相关设置
            p.setTextSize(20);
            String familyName = "宋体";
            Typeface font = Typeface.create(familyName,Typeface.ITALIC);
            p.setTypeface(font);
            p.setTextAlign(Paint.Align.CENTER);

            Paint.FontMetrics fm = p.getFontMetrics();

            c.drawText("我爱android", x/2, (y-fm.ascent)/2, p);
        }
       
        public SampleView(Context context) {
            super(context);
            setFocusable(true);
           // 得到图像的几种方法
            InputStream is = context.getResources().openRawResource(R.drawable.app_sample_code);
            mBitmap = BitmapFactory.decodeStream(is);
//从一幅图像抽取色值变为新的图像,一般是画笔的颜色 同下面  p.setColor(Color.BLUE);

            mBitmap2 = mBitmap.extractAlpha();

            mBitmap3 = Bitmap.createBitmap(200, 200, Bitmap.Config.ALPHA_8);
            drawIntoBitmap(mBitmap3);
            //一种渐变效果
            mShader = new LinearGradient(0, 0, 150, 70, new int[] {
                                         Color.RED, Color.GREEN, Color.BLUE },
                                         null, Shader.TileMode.MIRROR);
        }
       
        @Override protected void onDraw(Canvas canvas) {
            canvas.drawColor(Color.LTGRAY);

            Paint p = new Paint();
            float y = 10;
           
            p.setColor(Color.BLUE);
            canvas.drawBitmap(mBitmap, 10, y, p);
            y += mBitmap.getHeight() + 10;
            canvas.drawBitmap(mBitmap2, 10, y, p);
            y += mBitmap2.getHeight() + 10;
            p.setShader(mShader);
            canvas.drawBitmap(mBitmap3, 10, y, p);
        }
    }
}

如果把一幅图片变成一个可变图片之后,就可以在图片上打上自己的印记了,这里就不写了。这个程序主要是 怎么自己画一个图片,可以用在图片上画,也可以就如同一张白纸自己画,同时还有一个函数,可以用来提取外形的。
3
0
分享到:
评论

相关推荐

    画图_android小程序_android源码_android_源码

    Android小项目开发通常指的是利用Android SDK和相关工具开发的小规模应用,它们可能专注于解决特定问题,如这个"画图"小程序,旨在提供一个简单的绘画工具。这样的项目有助于初学者快速掌握Android编程基础,同时也...

    android skia

    所有画图操作都会经过矩阵变换和裁剪运算,以确定最终显示的图像。SkCanvas 通过 save 和 restore 方法保存和恢复绘图状态,允许在不破坏现有绘图的情况下进行局部操作。此外,SkCanvas 提供了丰富的绘图方法,如 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    android二维图形

    本文将探讨如何在Android应用程序中利用Drawable对象进行画图,并介绍如何创建动画,包括图形的补间动画和连续动画。 首先,我们来看看Drawable对象。Drawable是一个抽象概念,表示任何可以被绘制的对象,它是...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Android 自定义Paint画笔 canvas绘图例子.rar

    Android 自定义Paint画笔 canvas绘图例子,本例子中所用到的方法继承自android.view.View,是一个自定义View的范例,同时可学习画笔的定义:  Paint paint;//画笔  public MyView(Context context) {//构造器   ...

    Google Android SDK开发范例大全的目录

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    android UI设计

    在Android中,Nine-Patch是一种特殊的图片格式,用于实现图片的拉伸和缩放而不会导致图像失真。 **实现步骤:** 1. **准备图片素材**:使用画图软件制作需要拉伸的图片,并标记出可拉伸区域。 2. **转换为.9.png...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象...

    Google Android SDK 开发范例大全01

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google Android SDK 开发范例大全02

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google Android sdk 开发范例大全 部分章节代码

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Google+Android+SDK开发范例大全

    创意Android程序设计 10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker ...

    Google Android SDK开发范例大全(完整版)

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

    Android画画板的制作方法

    在Android平台上创建一...综上所述,Android画画板的制作涉及到UI设计、事件监听、图像处理以及手势识别等多个方面。开发者需要理解Android的视图层次结构、绘图机制和用户交互处理,才能创建出功能丰富的画画板应用。

    安卓打地鼠游戏

    在Android中,这些资源会被添加到项目的res目录下,并在代码中通过R类引用。 最后,为了运行这个游戏,开发者需要一个合适的模拟器环境。描述中建议使用Galaxy Nexus(4.65",720*1280;xhdpi),并在横屏模式下...

Global site tag (gtag.js) - Google Analytics