我正在创建一个应用程序,其中我有一个文本框,它给出了图像的描述。触摸它将描述图像的位置。在下方我用了两个按钮在图像之间导航。应该怎么做我这样做?我不理解那件事。
我已经使用了其他类中的图像然后我调用该图像但它无法正常工作。我可以在三天内陷入困境,任何人都可以帮助我。
如果有人认为我在问这个问题,那我很抱歉。
我的代码如下第一张图片
public class FirstImage extends ImageView {
float a=0;
float b=0;
TextView t= (TextView) findViewById(R.id.textView1);
public FirstImage(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public FirstImage(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean onTouch(MotionEvent me){
switch(me.getAction()){
case MotionEvent.ACTION_DOWN:
a=me.getX();
b= me.getY();
pageinfo(a,b);
break;
case MotionEvent.ACTION_MOVE:
a=me.getX();
b= me.getY();
pageinfo(a,b);
break;
case MotionEvent.ACTION_UP:
a=me.getX();
b= me.getY();
pageinfo(a,b);
break;
case MotionEvent.ACTION_OUTSIDE:
a=me.getX();
b= me.getY();
pageinfo(a,b);
break;
default: return false;
}
return true;
}
public void pageinfo(float a,float b){
t.setText(Float.toString(a)+"x"+Float.toString(b)+"y");
}
}
我在布局文件中调用如下...
<com.example.androidtablayout.FirstImage
android:id="@+id/myandroid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/human"
/>
但我不明白为什么它没有显示任何东西ontouch事件。
答案 0 :(得分:0)
以下代码(在VideosActivity
类中,取自链接问题)是问题所在:
FirstImage i= new FirstImage (this);
它在类的隐式创建的构造函数中创建 FirstImage 实例。但是,您无法在活动的生命周期中尽早生成UI小部件。而且您也不需要,因为布局inflater将为您生成所有UI小部件。
所以只需将代码更改为:
FirstImage i;
应该这样做。
初始化实例变量i
的正确方法已在您的代码中,即在findViewById()
中调用onCreate()
。
<强>更新强>
您希望在触摸图像时调用onTouch
。但onTouch
不是您可以覆盖的超类的方法。相反,onTouch
是View.OnTouchListener
接口的方法。
要修复它,请将实例注册为侦听器(使用setOnTouchListener
)并声明它以实现View.OnTouchListener
。或者将方法名称更改为OnTouchEvent
(可以覆盖)。