Android 如何在listview上获取项目的Y坐标
我的代码的目标是将ImageView移动到单击项目的中心,以某种方式“突出显示”它。为此,我尝试获取listview中单击项的Y坐标。 我的代码是:Android 如何在listview上获取项目的Y坐标,android,listview,coordinate,Android,Listview,Coordinate,我的代码的目标是将ImageView移动到单击项目的中心,以某种方式“突出显示”它。为此,我尝试获取listview中单击项的Y坐标。 我的代码是: private OnItemClickListener listview_auto_listener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int position,
private OnItemClickListener listview_auto_listener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
int[] coords = new int[2];
view.getLocationOnScreen(coords);
// We need just the top coordinate
int top = coords[1];
// And bottom
moveSelectedCar(top);
}
};
问题是,这不会返回单击项目的中心。(在问题编辑中回答。转换为社区wiki答案。请参阅)
OP写道:
我已经解决了这个问题
private-OnItemClickListener-listview\u auto\u listener=new-OnItemClickListener(){
@凌驾
public void onItemClick(适配器视图arg0、视图视图、内部位置、,
长arg3){
int new_top=view.getTop()+view.getRight();
int view_height=view.getHeight();
移动选定的车辆(新的俯视图和高度);
}
};
我希望这能帮助别人
不返回到单击项目的中心是什么意思?您发布的动画代码是做什么的?动画代码必须使ImageView居中于单击行的中心。问题是要找到那个中心……我试着用上面的代码来做。有什么帮助吗?
private void moveSelectedCar(int new_y) {
TranslateAnimation _tAnim = new TranslateAnimation(
TranslateAnimation.RELATIVE_TO_SELF,
TranslateAnimation.RELATIVE_TO_SELF, last_y, new_y);
_tAnim.setInterpolator(new DecelerateInterpolator());
_tAnim.setDuration(800);
_tAnim.setFillAfter(true);
_tAnim.setFillEnabled(true);
img_selected_car.startAnimation(_tAnim);
last_y = new_y;
}
private OnItemClickListener listview_auto_listener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
int new_top = view.getTop() + view.getRight();
int view_height = view.getHeight();
moveSelectedCar(new_top - view_height);
}
};