所以,我要做的是制作一个半自动页面监视器,当屏幕的某些部分发生变化时会提醒用户,我的应用程序的最大好处是用户可以记录某些操作,因为有些登录或注册通过单击JavaScript元素更改表单,而不仅仅是通过刷新。到目前为止我所做的是我制作了可缩放的WebView并编写了一个启动和停止触摸移动记录的按钮。除非用户按下JavaScript微调器,否则一切都像魅力一样。当它出现时,我的应用程序停止录制触摸,并且,android布局按钮隐藏。所以,我想要做的是强迫我的触摸录制系统响应每个可能的元素,事件是用JavaScript编写的。 这是我的代码:
package com.example.automatikaandroidui;
import java.util.ArrayList;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.PointF;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity implements OnClickListener, OnTouchListener {
WebView webView;
Button mygtukasSeka;
boolean isPressed = false;
boolean halfWay = false;
boolean eile = false;
ArrayList<PointF> masyvas = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
masyvas = new ArrayList<PointF>();
webView = (WebView)findViewById(R.id.webView1);
webView.loadUrl("https://www.eregitra.lt/viesa/interv/Index.php");
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setOnTouchListener(this);
mygtukasSeka = (Button)findViewById(R.id.mygtukas_seka);
mygtukasSeka.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.mygtukas_seka: {
TextView notify = (TextView)findViewById(R.id.ispek_irasyma);
if(!isPressed){
notify.setTextColor(Color.RED);
notify.setText("Įrašoma...");
isPressed = true;
}
else {
notify.setText("");
isPressed = false;
}
}
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getActionMasked()){
case MotionEvent.ACTION_DOWN : {
if(!halfWay && isPressed)
halfWay = true;
}
case MotionEvent.ACTION_UP : {
if(halfWay && isPressed){
PointF taskas = new PointF(event.getX(),event.getY());
masyvas.add(taskas);
halfWay = false;
Toast.makeText(MainActivity.this, taskas.x+" "+taskas.y, Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, masyvas.size()+"", Toast.LENGTH_SHORT).show();
}
}
}
if(isPressed){
if(eile)
eile = false;
else eile = true;
}
return eile;
}
}
以下是一些截图: 这是注册表。当您按下B旋转器时,当您更改其中的不同元素时,所有页面都会刷新。如你所见,底部有三个按钮,中间一个叫Seka记录触摸。
http://i.stack.imgur.com/UJxjg.png
我之前谈过的是旋转器。忽略吐司消息
http://i.stack.imgur.com/ekWTo.png
提前致谢! :)