日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

發布時間:2025/3/20 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发经验之在图片上随意点击移动文字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

只要在圖片范圍之內,文字可隨意點擊移動。

[java] view plaincopy
  • 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?View??
  • {??
  • ????private?float?x?=?20,?y?=?40;??
  • ????private?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;??
  • ????}??
  • }??

  • [java] view plaincopy
  • 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);??
  • ????}??
  • }??

  • 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的Android开发经验之在图片上随意点击移动文字的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。