Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中向ImageView添加触摸功能?_Java_Android_Android Layout_Touch - Fatal编程技术网

Java 如何在android中向ImageView添加触摸功能?

Java 如何在android中向ImageView添加触摸功能?,java,android,android-layout,touch,Java,Android,Android Layout,Touch,我对android还很陌生,我想知道如何为它添加一些功能,我按下了ImageView。我的活动java文件中的当前代码如下 package com.example.crystalbabyheaven; import android.app.Activity; import android.util.Log; import android.view.*; import android.view.V

我对android还很陌生,我想知道如何为它添加一些功能,我按下了ImageView。我的活动java文件中的当前代码如下

          package com.example.crystalbabyheaven;

          import android.app.Activity;
          import android.util.Log;
          import android.view.*;
          import android.view.View.OnTouchListener;
          import android.os.Bundle;
          import android.os.Handler;
          import android.view.Menu;
          import android.view.MenuItem;
          import android.widget.ScrollView;
          import android.widget.ImageView; 

          public class MainActivity extends Activity implements Runnable {


              @Override
              protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);


                final ScrollView sv = (ScrollView) findViewById(R.id.ScrollView);


                Handler h = new Handler();

                h.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        sv.scrollTo(0, 8000);            
                    }
                }, 100);

                ImageView player = new ImageView(this);
                player.setImageDrawable(getResources().getDrawable(R.drawable.crystalbaby));
                player.setOnTouchListener(new OnTouchListener(){
                    @Override
                    public boolean onTouch(View v, MotionEvent event){
                        sv.scrollTo(0, 5000);
                        return true;
                    }


                }); 

              }

              @Override
              public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
              }

              /*@Override
              public void onWindowFocusChanged(boolean hasFocus) {
                  super.onWindowFocusChanged(hasFocus);

                  ScrollView sv = (ScrollView) findViewById(R.id.ScrollView);
                  sv.scrollTo(300, 300);
              }*/

              @Override
              public boolean onOptionsItemSelected(MenuItem item) {
                // Handle action bar item clicks here. The action bar will
                // automatically handle clicks on the Home/Up button, so long
                // as you specify a parent activity in AndroidManifest.xml.
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                    return true;
                }
                return super.onOptionsItemSelected(item);
              }



            @Override
              public void run() {
                // TODO Auto-generated method stub

              }
          }
这是我的XML:

     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/mainLayout"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical"
         tools:context="com.example.crystalbabyheaven.MainActivity" >



    <ScrollView
        android:id = "@+id/ScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scaleType="fitXY"
                android:src="@drawable/bg" />



      </ScrollView>

    <ImageView
                android:id="@+id/crystalBaby"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:layout_gravity="bottom"    
                android:src="@drawable/crystalbaby" />




     </FrameLayout>


我有一个非常大的图像,从地球的图片开始,向上滚动穿过大气层进入太空。我在这个背景上有另一个图像视图。onCreate中我的代码的第一部分将scrollview视图设置为图像的底部。在这种情况下,我想做的是当我按下角落里的图像时,滚动到图像的中间。我确实想要一些不同的东西,但我想在做任何事情之前先测试一下。我的代码有问题吗?我不知所措

您正在创建ImageView播放器,但这与xml中的ImageView不同。为什么不这样做:Imageview播放器=(Imageview)findViewById(R.id.Imageview\u播放器) 在xml中,将android:id=“@+id/imagview_播放器”放在imageview中


或者,如果必须以编程方式创建imageview,则将其添加到布局中。您没有将其添加到代码中的任何布局中。

您正在创建ImageView播放器,但这与xml中的ImageView不同。为什么不这样做:Imageview player=findViewById(R.id.Imageview\u player)并在xml中,将android:id=“@+id/imagview\u player”放在Imageview中。或者,如果必须以编程方式创建imageview,则将其添加到布局中。您没有将其添加到代码中的任何布局中。这很有效!我不得不将findviewbyd(R.id.imageview\u播放器)转换成imageview,但仍然有效!非常感谢@Hasam!没问题,很高兴我能帮忙。我会把答案贴在下面。