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

本文介绍了一个使用Android平台进行图像处理和绘制的技术示例。包括如何创建和操作位图、应用透明度、混合模式以及使用字体和渐变填充等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在这里写文章啥都不为,就是写自己的总结,不管错误和正确也好,都是自己的,写对写错与他人无关,也不希望别人回帖,谢谢。
     以后的文章都是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);
}
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值