Android中怎么实现画图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
在Android 操作系统开发中,对于图形界面的操作时非常常见的一个基础操作。我们可以先通过本文介绍的有关Android画图的相关操作,来具体了解一下图形界面的操作技巧,以此提高我们对这一系统的认知程度。
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); mBitmapmBitmap2 = 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); } } }
关于Android中怎么实现画图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。