博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获得控件坐标
阅读量:5925 次
发布时间:2019-06-19

本文共 2011 字,大约阅读时间需要 6 分钟。

hot3.png

三种方法:

  1. getLocationOnScreen(location):获得在屏幕上的坐标(包括通知栏)

  2. getLocationInWindow(location):获得在该窗口的坐标

  3. getTop()、getLeft()、getBottom()、getRight()获得在父窗口中的位置

   注意:在获得控件的宽高时,不能放在onCreate()中,在该方法中,是无法获得控件的宽高和坐标的,应在生命周期中的 onWindowFocusChanged(boolean hasFocus)方法中实现

  1. 以下代码仅供测试:

    import android.app.Activity;

    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.RelativeLayout;
    import android.widget.RelativeLayout.LayoutParams;
    import android.widget.TextView;

    public class TestActivity extends Activity {

     private ImageView img;

     private RelativeLayout container;
     private TextView show;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.imageview);
      img = (ImageView) findViewById(R.id.img);
      container = (RelativeLayout) findViewById(R.id.container);
      show = (TextView) findViewById(R.id.show);
      
     }

     @Override

     public void onWindowFocusChanged(boolean hasFocus) {
      super.onWindowFocusChanged(hasFocus);
      int[] location = new int[2];
      img.getLocationInWindow(location);
      
      View hView = new View(this);
      hView.setBackgroundColor(Color.WHITE);
      LayoutParams lp= new LayoutParams(5, location[1]+img.getHeight());
      lp.leftMargin = location[1]+img.getWidth()+20;
      lp.topMargin = img.getTop();
      hView.setLayoutParams(lp);
      
      container.addView(hView);
      show.setText("x:"+location[0]+"\ny:"+img.getTop());
     } 

    }

imageview.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=""
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView

        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:src="@drawable/home1" />

    <TextView

        android:id="@+id/show"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/img" />

</RelativeLayout>

转载于:https://my.oschina.net/u/2483853/blog/541245

你可能感兴趣的文章
C# 之泛型详解
查看>>
POJ1017 Packets(贪心)
查看>>
第一次随笔
查看>>
我的操作系统复习——存储器管理
查看>>
Java二十三设计模式之------责任链模式
查看>>
IDEA之配置git
查看>>
HTML5网页音乐播放器
查看>>
行列式的乘法定理
查看>>
【云图】如何制作中国贪官落马图?
查看>>
Anaconda配置多spyder多python环境
查看>>
对于一些概念的澄清
查看>>
线段树(区间合并) POJ 3667 Hotel
查看>>
Linux 小知识翻译 - 「虚拟化技术」
查看>>
CodeChef November Challenge 2013 解题报告
查看>>
uva 10369(最小生成树)
查看>>
grep命令
查看>>
js中this的使用
查看>>
privot和unpivot
查看>>
硬件笔记
查看>>
hibernate03增删改查
查看>>