Tôi muốn người dùng ứng dụng của mình có thể sửa đổi hình ảnh trong thời gian chạy. Người dùng sẽ có thể thay đổi chiều cao và chiều rộng bằng cách khai thác ở góc của hình ảnh xem và kéo nó như minh họa trong biểu đồ sau:Cách tạo ImageView có thể thay đổi kích thước trong Android
Tôi đã dành rất nhiều thời gian nghiên cứu này và tôi đã tìm thấy Making Sense of Multitouch và Resize a large bitmap file to scaled output file thứ gì đó như Pinch Zoom nhưng không cái nào trong số này phù hợp với yêu cầu của tôi.
hiện tại tôi đang đổi kích thước bitmap bằng cách sử dụng phần dưới đây và thay đổi chiều rộng trong phương pháp thay đổi onprogress của thanh tìm kiếm thay vì khung. bằng cách sử dụng chức năng này, kích thước ảnh thay đổi không hoạt động trơn tru.
public static Bitmap decodeFile(File f,int WIDTH,int HIGHT){
try {
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
//The new size we want to scale to
final int REQUIRED_WIDTH=WIDTH;
final int REQUIRED_HIGHT=HIGHT;
//Find the correct scale value. It should be the power of 2.
int scale=1;
while(o.outWidth/scale/2>=REQUIRED_WIDTH && o.outHeight/scale/2>=REQUIRED_HIGHT)
scale*=2;
//Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
}
catch (FileNotFoundException e) {}
return null;
}
UPDATE:
Bây giờ làm việc trơn tru bằng vẽ bitmap trong vải sử dụng câu trả lời chấp nhận của this câu hỏi.
phần reaming bây giờ đang đặt khung xung quanh hình ảnh như một thứ gì đó như khung cắt.
Hãy giúp tôi đạt được điều này.
Hi, tôi thấy hướng dẫn này, nhưng hãy để tôi hỏi bạn điều này: Có điểm nằm ở hai bên hình ảnh chỉ cho phép chuyển động trục X hoặc chỉ trục Y? Nếu vậy, thì bạn không thể đặt, trong phần của mã nơi '// Tính toán khoảng cách đã di chuyển', việc thay đổi kích thước hình ảnh đơn giản trên trục X và/hoặc Y và cập nhật hình ảnh này thành' ImageView'? – g00dy
không có điểm nào không nằm. Khung này phải theo kích thước hình ảnh sau khi thay đổi kích thước. do đó, khung này sẽ phải tạo động mỗi lần xung quanh hình ảnh. tôi đã thay đổi hình ảnh câu hỏi của mình. plz kiểm tra hình ảnh mới này. cảm ơn ... –
Tôi đoán rằng phần với các điểm đã được thực hiện? Bạn đã làm gì cho điều này chưa? – g00dy