Android:将数字画在图片上合成一张图的两种实现方法(二)
来源:互联网 发布:c语言编程九九乘法表 编辑:程序博客网 时间:2024/04/28 08:36
方法实现如下:
package com.example.mytest;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.FontMetrics;import android.graphics.Rect;import android.graphics.Typeface;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;public class MainActivity extends Activity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) findViewById(R.id.test); Thread thread = new Thread() { @Override public void run() { Drawable mPointMenuBmp = initCounterResources(3); Message message = handler.obtainMessage(); message.what = 1; message.obj = mPointMenuBmp; handler.sendMessage(message); super.run(); } }; thread.start(); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { Drawable mPointMenuBmp = (Drawable) msg.obj; mTextView.setCompoundDrawablesWithIntrinsicBounds(null, null, mPointMenuBmp, null); super.handleMessage(msg); } }; /** <br>功能简述:画出小红点 * <br>功能详细描述: * <br>注意: * @param count */ private Drawable initCounterResources(int count) { Drawable mCounterDrawable = null; Bitmap bitmapDrawable = null; if (mCounterDrawable == null) { // 初始化画布 mCounterDrawable = getResources().getDrawable(R.drawable.go_account_stat_notify); Bitmap bitmapDrawables = ((BitmapDrawable) mCounterDrawable).getBitmap(); int bitmapX = bitmapDrawables.getWidth(); int bitmapY = bitmapDrawables.getHeight(); bitmapDrawable = Bitmap.createBitmap(bitmapX, bitmapY, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmapDrawable); // 拷贝图片 Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setDither(true);// 防抖动 mPaint.setFilterBitmap(true);// 用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯 Rect src = new Rect(0, 0, bitmapX, bitmapX); Rect dst = new Rect(0, 0, bitmapX, bitmapX); canvas.drawBitmap(((BitmapDrawable) mCounterDrawable).getBitmap(), src, dst, mPaint); // canvas.drawBitmap(bitmapDrawable, bitmapX, bitmapY, mPaint); //画数字 mPaint.setTextAlign(Paint.Align.CENTER); mPaint.setTypeface(Typeface.DEFAULT_BOLD); mPaint.setColor(Color.BLACK); mPaint.setTextSize(20); FontMetrics fontMetrics = mPaint.getFontMetrics(); canvas.drawText(String.valueOf(count), 56, 56 + (fontMetrics.bottom - fontMetrics.top) / 4, mPaint); canvas.save(); } return new BitmapDrawable(getResources(), bitmapDrawable); }}
0 0
- Android:将数字画在图片上合成一张图的两种实现方法(二)
- Android:将数字画在图片上合成一张图的两种实现方法(一)
- 用QImage创建合成的图片(一张图片堆叠在另一张图片上)
- 合成图片的两种方法
- 将文字放在图片上,并合成图
- 合成图片的两种方法,思路都是一样的
- 合成图片的两种方法,思路都是一样的
- java合成两张图片并在图片上写字
- Android之---ImagView显示图片(将一张图片按原图大小合理显示在imageView上,避免OOM)
- 在程序中如何把两张图片合成为一张图片
- 在程序中如何把两张图片合成为一张图片
- PHP 生成一张图片的两种方法
- 在一张图片上实现截图功能
- C#调用SAPI实现语音合成的两种方法
- 14.9.29关于在图片下面做上一张与下一张按钮的android程序
- IOS两张图片合成为一张图片
- 两张(多张)图片合成一张图片
- IOS两张图片合成为一张图片
- LVM使用之一-从实际需要出发,缩小LV大小
- 二叉树遍历——层次遍历、前中后序遍历(递归、非递归)
- 深入浅出学习归并算法
- MyEclipse+Tomcat 启动时出现A configuration error occured during startup错误的解决方法
- Box2D v2.1.0用户手册(9)——接触(Contacts)
- Android:将数字画在图片上合成一张图的两种实现方法(二)
- C#中关于字符串为空的操作那点事
- android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹
- Android图片轮播 ViewPager ImageView
- 面对对象2【static】【主函数】【静态应用】【Java帮助文档】【静态代码块】【对象初始化过程】
- ARP地址解析的过程
- C++ map的使用
- MFC控件之ListCtrl的使用方法
- 分布式消息中间件 MetaQ 作者庄晓丹专访