我想要的是,用手指触摸图像移动文本,在按钮上单击它会将现有图像重新绘制为新的图像,粘贴在文本上。
它适用于v3.1以及模拟器。 但我试图在v2.2设备上进行测试它发生了更糟糕的关闭。虽然它对设备有所有支持。可以帮助我离开这里。它会在几周内变得至关重要。谢谢你。
///Redrawing the image & touchin Move of the Canvas with text
public void redrawImage(String path,float sizeValue,String textValue,int colorValue) {
BitmapFactory.Options options = new BitmapFactory.Options();
try {
options.inMutable = true;
} catch (Exception e) {
// TODO: handle exception
System.out.println("#############Error is======"+e.getMessage());
}
Bitmap bm = BitmapFactory.decodeFile(path,options);
proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(proxy);
//Here, we draw the background image.
c.drawBitmap(bm, new Matrix(), null);
Paint paint = new Paint();
paint.setColor(colorValue); // Text Color
paint.setStrokeWidth(30); // Text Size
paint.setTextSize(sizeValue);
System.out.println("Values passing=========="+someGlobalXvariable+", "+someGlobalYvariable+", "
+sizeValue+", "+textValue);
//Here, we draw the text where the user last touched.
c.drawText(textValue, someGlobalXvariable, someGlobalYvariable, paint);
popImgae.setImageBitmap(proxy);
}
答案 0 :(得分:0)
在文字抽出之前,只要你触摸,就会知道关闭力发生的时间,就像应用程序启动后一样?
在设备上进行调试
一种非常简单和完全的技术是在实际设备上以调试模式运行代码。在函数的开头添加一个断点,然后跨过每一行直到它强制关闭。
可能是OOM
如果你反复调用redrawImage,就像触摸过程中的每一帧一样,那么分配新的位图可能会快速占用大量内存并导致崩溃:
Bitmap bm = BitmapFactory.decodeFile(path,options);
然后关闭之后可能会发生力量关闭。尝试将bm更改为方法参数或从文件中分配和读取的成员字段。