栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取按钮坐标并检测手指是否在其上方-Android

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取按钮坐标并检测手指是否在其上方-Android

package com.example.touch;

import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.RelativeLayout;import android.widget.TextView;public class MainActivity extends Activity {    Button b1, b2, b3, b4;    int b1x1, b1x2, b1y1, b1y2;    private TextView xcordview;    private TextView ycordview;    private TextView buttonIndicator;    private RelativeLayout touchview;    private static int defaultStates[];    private Button mLastButton;    private final static int[] STATE_PRESSED = { android.R.attr.state_pressed, android.R.attr.state_focused| android.R.attr.state_enabled };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xcordview = (TextView) findViewById(R.id.textView4);        ycordview = (TextView) findViewById(R.id.textView3);        buttonIndicator = (TextView) findViewById(R.id.button_indicator);        touchview = (RelativeLayout) findViewById(R.id.relativelayout);        b1 = (Button) findViewById(R.id.button1);        b2 = (Button) findViewById(R.id.button2);        b3 = (Button) findViewById(R.id.button3);        b4 = (Button) findViewById(R.id.button4);        defaultStates = b1.getBackground().getState();    }    @Override    protected void onResume() {        // TODO Auto-generated method stub        super.onResume();        touchview.setonTouchListener(new View.onTouchListener() { private boolean isInside = false; @Override public boolean onTouch(View v, MotionEvent event) {     int x = (int) event.getX();     int y = (int) event.getY();     xcordview.setText(String.valueOf(x));     ycordview.setText(String.valueOf(y));     for (int i = 0; i < touchview.getChildCount(); i++) {         View current = touchview.getChildAt(i);         if (current instanceof Button) {  Button b = (Button) current;  if (!isPointWithin(x, y, b.getLeft(), b.getRight(), b.getTop(),          b.getBottom())) {      b.getBackground().setState(defaultStates);  }  if (isPointWithin(x, y, b.getLeft(), b.getRight(), b.getTop(),          b.getBottom())) {      b.getBackground().setState(STATE_PRESSED);      if (b != mLastButton) {          mLastButton = b;          buttonIndicator.setText(mLastButton.getText());      }  }         }     }     return true; }        });    }    @Override    public void onWindowFocusChanged(boolean hasFocus) {        // TODO Auto-generated method stub        super.onWindowFocusChanged(hasFocus);    }    static boolean isPointWithin(int x, int y, int x1, int x2, int y1, int y2) {        return (x <= x2 && x >= x1 && y <= y2 && y >= y1);    }}

layout file

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/relativelayout"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#ffffff" >    <TextView        android:id="@+id/textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_alignParentLeft="true"        android:layout_marginBottom="10dp"        android:layout_marginLeft="10dp"        android:text="Y Cord : "        android:textAppearance="?android:attr/textAppearanceMedium" />    <TextView        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_above="@+id/textView"        android:layout_alignParentLeft="true"        android:layout_marginBottom="10dp"        android:layout_marginLeft="10dp"        android:text="X Cord : "        android:textAppearance="?android:attr/textAppearanceMedium" />    <TextView        android:id="@+id/textView3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/textView2"        android:layout_toRightOf="@+id/textView"        android:textAppearance="?android:attr/textAppearanceMedium"        android:textColor="#000000" />    <TextView        android:id="@+id/textView4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_above="@+id/textView"        android:layout_marginBottom="10dp"        android:layout_toRightOf="@+id/textView"        android:textAppearance="?android:attr/textAppearanceMedium"        android:textColor="#000000" />    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:text="B1"        android:textColor="#000000" />    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_below="@+id/button1"        android:text="B2"        android:textColor="#000000" />    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_below="@+id/button2"        android:text="B3"        android:textColor="#000000" />    <Button        android:id="@+id/button4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_below="@+id/button3"        android:text="B4"        android:textColor="#000000" />    <TextView        android:id="@+id/button_indicator"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignTop="@+id/textView4"        android:layout_marginRight="33dp"        android:text="No one"        android:textAppearance="?android:attr/textAppearanceLarge" />    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignbaseline="@+id/button_indicator"        android:layout_alignBottom="@+id/button_indicator"        android:layout_marginRight="29dp"        android:layout_toLeftOf="@+id/button_indicator"        android:text="Entered: "        android:textAppearance="?android:attr/textAppearanceLarge" /></RelativeLayout>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号