我正在imageview上绘制矩形形状,我得到那个矩形形状的所有坐标,这样我就需要在imageview上拖动到矩形形状的任何图像。我正在尝试将imageview转换为位图,然后我捕获该矩形部分并在弹出窗口显示,但它不起作用请帮帮我
代码:
public class MyActivity extends Activity {
private static final String TAG = "MyActivity";
PopupWindow ppwindow;
Button btnClosePopup;
ImageView imagpopup;
ImageView dummyimage;
int imagewidth,imageheight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DragRectView view = (DragRectView) findViewById(R.id.dragRect);
dummyimage=(ImageView) findViewById(R.id.image);
if (null != view) {
view.setOnUpCallback(new DragRectView.OnUpCallback() {
@Override
public void onRectFinished(final Rect rect) {
Toast.makeText(getApplicationContext(), "Rect is (" + rect.left + ", " + rect.top + ", " + rect.right + ", " + rect.bottom + ")",
Toast.LENGTH_LONG).show();
ViewTreeObserver vto = dummyimage.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
dummyimage.getViewTreeObserver().removeOnPreDrawListener(this);
imageheight = dummyimage.getMeasuredHeight();
imagewidth = dummyimage.getMeasuredWidth();
return true;
}
});
Bitmap bitmap1 = Bitmap.createScaledBitmap(
((BitmapDrawable) dummyimage.getDrawable())
.getBitmap(),imagewidth,imageheight, false);
System.out.println(rect.height() + "=== "
+ bitmap1.getHeight() + " ==== " + rect.width()
+ " ===== " + bitmap1.getWidth());
if (rect.height() <= bitmap1.getHeight()
&& rect.width() <= bitmap1.getWidth()) {
Bitmap bitmap = Bitmap.createBitmap(bitmap1,
view.getLeft(), view.getTop(), view.getWidth(),
view.getHeight());
showpopUp(bitmap);
}}
});
}
}
private void showpopUp(Bitmap bitmap) {
LayoutInflater inflater = (LayoutInflater) MyActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.screen_popup,
(ViewGroup) findViewById(R.id.popup_element));
ppwindow = new PopupWindow(layout, 100, 140, true);
ppwindow.showAtLocation(layout, Gravity.AXIS_Y_SHIFT, 0, 0);
btnClosePopup = (Button) layout.findViewById(R.id.btn_close_popup);
imagpopup=(ImageView) layout.findViewById(R.id.imageView_poup);
imagpopup.setImageBitmap(bitmap);
btnClosePopup.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ppwindow.dismiss();
}
});
}
}