2015-06-03 89 views
2

我用下面的代码从资源文件夹中的位图放入一个可绘制并绘制在画布在画布上的Android位图从外部文件

Drawable f = getResources().getDrawable(R.drawable.harris1); 
f.setBounds(a,120,a+200,270); 
f.draw(canvas); 

我希望能够得到位图从我的照片我的设备上的目录,并绘制它在画布上

我得到的文件路径在这种情况下的文件名如下

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
String name = "harris1.jpg"; 
File file = new File(path, name); 
String fileName = String.format("%s/" + name, path); 

等于“/存储/模拟/ 0 /皮克特URES/harris1.jpg”

如何变更线

绘制对象F = getResources()getDrawable(R.drawable.harris)。

要在设备上使用图片的名称?

任何帮助表示赞赏

马克

回答

0

如何像:

Bitmap bitmap = BitmapFactory.decodeFile(pathToFile); 
canvas.drawBitmap(bitmap, ...); 
+0

我试过了Bitmap bitmap = BitmapFactory.decodeFile(fileName); \t \t \t canvas.drawBitmap(bitmap,new Rect(a,120,a + 200,270),rectangle,null);但是它在矩形下有一个错误,矩形是什么值? –

+0

尝试把两个相等的rects新的矩形(a,120,a + 200,270) – Andrey

+0

抱歉抛出一个错误06-04 06:13:28.206:E/AndroidRuntime(9993):java.lang.NullPointerException 06-04 06 :13:28.206:E/AndroidRuntime(9993):\t在android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1083) –

0

你可能会喜欢此位的代码:

ImageView myImageView = (ImageView)findViewById(R.id.imageview); 
BitmapDrawable imagePath = new BitmapDrawable(getResources(), "/storage/emulated/0/Pictures/harris1.jpg"); 
myImageView.setImageBitmap(imagePath.getBitmap()); 
+0

我没有一个imageview我试图打印到一个画布,反过来保存为PDF使用它从资源工程罚款只是不能解决如何使用设备中的图像 –