如何基于onTouch事件为ImageView确定新边距

时间:2019-01-29 17:10:36

标签: java android xml

因此,基本上,我是在空闲时间学习一些Java和android编程,并且想编写基于onTouch事件更改图像位置的应用程序,但是它崩溃了,我不知道为什么。

Java代码:

package com.FF.HLW;

import android.*;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity {
ImageView irisJ;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ImageView irisJ = (ImageView)findViewById(R.id.Iris);

}

public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()== MotionEvent.ACTION_UP){
String coords = "X: "+ event.getX()+ " Y: "+event.getY();
Toast.makeText(this, coords,Toast.LENGTH_SHORT).show();

//RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,  RelativeLayout.LayoutParams.WRAP_CONTENT);

//params1.setMargins(Math.round(event.getX()), Math.round(event.getY()) ,0 ,0);
//irisJ.setLayoutParams(params1);

}
return super.onTouchEvent(event);
}
}

Xml只有一个ViewImage:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/Iris"
    android:layout_width="150dp"
    android:layout_height="150dp"

android:contentDescription="@string/app_name"
    android:src="@drawable/ic_launcher"/>

</RelativeLayout>

当我在Toast行之后删除//时,应用程序崩溃。 怎么了?

1 个答案:

答案 0 :(得分:0)

好的,我设法让它自己工作。当我在onCreate中选择irisJ id时,从ine中删除了ImageView,它现在可以工作。