Android系统默认会将用户点击的“桌面图标”的位置发送给启动页MainActivity,以此来实现某些系统的过渡动画,所以在MainActivity中调用下面的代码是可以得到当前App的icon坐标的。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
TextView textView = findViewById(R.id.location);
Rect rect = getIntent().getSourceBounds();
if (null != rect) {
textView.setText(rect.toShortString());
}
}
}
这就是icon在桌面的坐标了,代表左上角和右下角位置,但是需要注意的地方是,如果不是点击icon启动的App,而是通过adb启动的,那是拿不到这个信息的,rect会返回null,所以这个需要做好判断。