두 개의 ImageViews로 Activity를 생성하고 있습니다.레이아웃이 onTouch() 내에서 작동하지 않습니다.
첫 번째 ImageView는 시작시 화면의 일부를 차지하며 첫 번째 이미지를 터치하고 그 위에 TOP의 이미지를 터치하는 영역 주위의 자르기가있는 다른 이미지 뷰를 표시하려고합니다.
는 클래스 :
public class DetectEyesActivity extends Activity implements OnTouchListener {
private ImageView imgView;
private Bitmap imgBitmap;
private ImageView touchView2;
private Bitmap temp;
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.detecteyeslayout);
Intent intent = this.getIntent();
byte[] image = intent.getByteArrayExtra("Image");
imgView = (ImageView) findViewById(R.id.detectImageView1);
touchView2 = (ImageView) findViewById(R.id.detectImageView2);
imgBitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
imgView.setImageBitmap(imgBitmap);
temp = Bitmap.createBitmap(imgBitmap, 200, 200, 200, 200);
//touchView2.setImageBitmap(temp);
imgView.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
int y = (int)event.getY();
int x = (int)event.getX();
temp = Bitmap.createBitmap(imgBitmap, 200,200, 200, 200);
touchView2.setImageBitmap(temp);
touchView2.setVisibility(0);
touchView2.bringToFront();
touchView2.layout(x-200, y-200, x-30, y-30);
return true;
}
}
레이아웃 : 나는
touchView2.setImageBitmap(temp);
내부 onTouch()를 호출 할 때
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/detectImageView1"
android:layout_width="400dp"
android:layout_height="400dp" />
<ImageView
android:id="@+id/detectImageView2"
android:layout_width="100dp"
android:layout_height="100dp"
android:visibility="gone" />
</LinearLayout>
그러나보기는 초기 이미지 아래에 그려집니다 레이아웃에. 하지만 onCreate() 내부에서 호출하면 초기 이미지 위에 그려지는 것입니까?
왜 이런 일이 발생하며이 문제를 어떻게 해결할 수 있습니까?
보기가 포함 된 레이아웃 유형은 무엇입니까? 질문은'LinearLayout' 태그가 붙어 있지만, 제공 한 XML은 두 개의 이미지만을위한 것입니다. – Devunwired
나를 용서해주십시오 ... 지금 업데이트되었습니다. – MobileCushion