Android开发经验之在图片上随意点击移动文字

               

只要在图片范围之内,文字可随意点击移动。

package xiaosi.GetTextImage;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.util.DisplayMetrics;import android.view.MotionEvent;import android.view.View;import android.view.WindowManager;public class GetTextImage extends Viewprivate float x = 20, y = 40private static float windowWidth; private static float windowHeight; private static float left = 0;      //图片在屏幕中位置X坐标 private static float top = 0;       //图片在屏幕中位置Y坐标 private String str = "我爱你"private DisplayMetrics dm = new DisplayMetrics();  //用于获取屏幕的高度和宽度 private WindowManager windowManager; private Bitmap newbitmap; public GetTextImage(Context context) {  super(context);  windowManager = (WindowManager) context    .getSystemService(Context.WINDOW_SERVICE);  //屏幕的宽度  windowWidth = windowManager.getDefaultDisplay().getWidth();  //屏幕的高度  windowHeight = windowManager.getDefaultDisplay().getHeight(); } public void onDraw(Canvas canvas) {  Resources res = getResources();  Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.b);  newbitmap = getTextImage(bmp, str, x, y);  canvas.drawBitmap(newbitmap, 0, 0, null); } /**  * 返回值: Bitmap 参数:原图片,文字 功能: 根据给定的文字生成相应图片  *   * @param originalMap   * @param text  文字  * @param x  点击的X坐标  * @param y  点击的Y坐标  * @return  */ public static Bitmap getTextImage(Bitmap originalMap, String text, float x,   float y) {  float bitmapWidth = originalMap.getWidth();  float bitmapHeight = originalMap.getHeight();  // 定义画布     Canvas canvas = new Canvas(originalMap);     // 定义画笔  Paint paint = new Paint();  //获得文本的长度(像素)  float textWidth = paint.measureText(text);   canvas.drawBitmap(originalMap, 0, 0, null);    // 如果图片宽度小于屏幕宽度  if (left + bitmapWidth < windowWidth)  {   // 右边界   if (x >= left + bitmapWidth - textWidth)   {    x = left + bitmapWidth - textWidth;   }   // 左边界   else if (x <= left)   {    x = left;   }  }  else  {   // 右边界   if (x >= windowWidth - textWidth)   {    x = windowWidth - textWidth;   }   // 左边界   else if (x <= 0)   {    x = 0;   }  }  // 如果图片高度小于屏幕高度  if (top + bitmapHeight < windowHeight)  {   // 下   if (y >= top + bitmapHeight)   {    y = top + bitmapHeight;   }   // 上   else if (y <= top + 10)   {    y = top + 10;   }  }  else  {   if (y >= windowHeight)   {    y = windowHeight;   }   else if (y <= 0)   {    y = 0;   }  }    // 添加字     canvas.drawText(text, x, y, paint);  return originalMap; } @Override public boolean onTouchEvent(MotionEvent event) {  if (event.getAction() == MotionEvent.ACTION_DOWN)  {   x = event.getX();   y = event.getY();   // 重绘   invalidate();  }  return true; }}


package xiaosi.GetTextImage;import android.app.Activity;import android.os.Bundle;public class GetTextImageActivity extends Activity {    /** Called when the activity is first created. */ private GetTextImage get;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        get = new GetTextImage(this);        setContentView(get);    }}


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/sdfsdfytre/article/details/86563745
今日推荐