2012-12-06 35 views
6
b2.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       setContentView(R.layout.new_main); 

       String editTextStr = text.getText().toString(); 
       Toast msg = Toast.makeText(getBaseContext(),"/sdcard/Stored_Images/" + editTextStr + ".jpg", Toast.LENGTH_LONG); 
       msg.show(); 

       Bitmap bmp = BitmapFactory.decodeFile("/sdcard/Stored_Images/" + editTextStr + ".jpg"); 
       ImageView img = (ImageView) findViewById(R.id.ImageView01); 
       img.setImageBitmap(bmp); 
      } 
     }); 

Đoạn mã trên hiển thị hình ảnh trên màn hình được lưu trên thẻ sd.Android - Vẽ lên đầu hình ảnh

Canvas c = holder.lockCanvas(); 
c.drawARGB(255,0,0,0); 
onDraw(c); 
holder.unlockCanvasAndPost(c); 

Mã này tạo canvas để vẽ trên (màn hình màu đen).

Tôi muốn có thể kết hợp cả hai để đặt/hiển thị hình ảnh làm canvas để tôi có thể vẽ trên đó. Vì vậy, nếu tôi chụp một bức ảnh khuôn mặt ai đó, tôi muốn có thể hiển thị hình ảnh đó để tôi có thể vẽ một bộ ria mép hoặc một thứ gì đó trên đó.

Trả lời

4

Có lẽ bạn nên tạo canvas, thêm ảnh bitmap vào nó và sau đó xử lý chạm/vẽ của người dùng từ đó.

Bitmap bmp = BitmapFactory.decodeFile("/sdcard/Stored_Images/" + editTextStr + ".jpg"); 
mCanvas = new Canvas(bmp); 

sau đó cho các bản vẽ ... âm thanh như bạn đã có tìm ra, nhưng nếu không bạn có thể kiểm tra fingerPaint samples từ demo api chứng minh vẽ trên vải (mà bạn sẽ có hình ảnh của bạn trên tại . điểm đó)

+0

Tôi đã thử điều này, nhưng tôi nhận được một lỗi mà nói: bitmap Immutable truyền cho constructor Canvas. Còn đường nào để vòng lại chỗ đó không? – homes

+1

Liên kết được cung cấp không hoạt động nữa nhưng tôi cho rằng đây là mẫu giống nhau: https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis /graphics/FingerPaint.java –

+0

cảm ơn @MatthiasSchippling –

1

bạn có thể tùy chỉnh các ImageView và khiến vẽ trên hình ảnh của bạn trong onDraw (Canvas canvas)

Ví dụ:

trong hoạt động của bạn:

1) tạo Bitmap từ hình ảnh

2) thiết lập các Bitmap để tùy chỉnh ImageView

a) create object for customized ImageView 

MyImageView view = new MyImageView (this);

b) set the bitmap 


view.setImageBitmap(bmp); 

MyImageView.java:

+0

Thông tin rất hữu ích! – Alexey

Các vấn đề liên quan