gpt4 book ai didi

android - 获取按钮在屏幕上的位置

转载 作者:行者123 更新时间:2023-11-29 20:57:03 24 4
gpt4 key购买 nike

我创建了一个动态按钮并将其添加到LinearLayout,Linear布局的父 View 是Horizo​​ntalScrollView。我需要动态移动 Horozontal scollview 的滚动位置。

我无法获得按钮在屏幕上的位置。它始终为屏幕上的按钮 Y 和 Y 位置提供 [0,0]。

我的 XML 文件:

 <HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_above="@id/imv_Line_Invisibe"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/imv_logo"
android:scrollbars="none" >

<LinearLayout
android:id="@+id/lay_but"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal" >
</LinearLayout>

</HorizontalScrollView>

动态添加按钮到线性布局:

    int i = 0;
for (HashMap<String, String> map : category)
for (Entry<String, String> mapEntry : map.entrySet()) {
String strButLabel = mapEntry.getValue();
Log.i("map", "" + strButLabel);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
String value = mapEntry.getValue();
TextView tvSetID = new TextView(this);
tvSetID.setId(i);
butCategory = new Button(this);
butCategory.setId(i);
butCategory.setText(value);
butCategory.setTextSize(13);
butCategory.setAllCaps(true);
butCategory.setLayoutParams(params);
butCategory.setTypeface(custom_font, Typeface.BOLD);
butCategory.setGravity(Gravity.CENTER | Gravity.BOTTOM);
butCategory.setPadding(0, 0, 20, 20);
butCategory.setBackgroundResource(R.drawable.nav_phone_unselect);
butCategory.setTextColor(Color.parseColor("#666666"));
butCategory.setOnClickListener(OnClickChangeButtonColor(butCategory));
i++;
}

这是我用来获取按钮在屏幕上的位置的代码:

int temp_index = intent.getIntExtra("btn_index_value", 0);
Button butCategory = (Button) findViewById(temp_index);
butCategory.setBackgroundResource(R.drawable.nav_phone_select);
butCategory.setTextColor(Color.parseColor("#FFFFFF"));
String i1 = butCategory.getText().toString();
int[] locations = new int[2];
butCategory.getLocationOnScreen(locations);
int x = locations[0];
int y = locations[1];
horizontal_Category.scrollTo(x, y);
index = temp_index;

最佳答案

您可以使用它 - View.getLocationOnScreen() 和/或 getLocationInWindow()。

关于android - 获取按钮在屏幕上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com