【发布时间】:2016-10-08 05:28:52
【问题描述】:
您好,我正在尝试在图像上制作热点,但问题是屏幕尺寸更改时热点位置也发生了变化
到目前为止我已经做了以下事情
下面是我的布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="myapp.imagemappingdemo.MainActivity">
<FrameLayout
android:layout_width="7000pt"
android:layout_height="5000pt">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/bolt_int"
android:text="Hello World!" />
<RelativeLayout
android:id="@+id/upperView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
>
</RelativeLayout>
</FrameLayout>
我正在使用以下代码来绘制图像。
screenWidth = this.getResources().getDisplayMetrics().widthPixels;
ImageView btn = new ImageView(MainActivity.this);
RelativeLayout.LayoutParams bp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
bp.leftMargin = (int) (774.6667 );
bp.topMargin = (int) (413.25);
btn.setLayoutParams(bp);
btn.setImageResource(R.drawable.ic_stat_name);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "Button Click", Toast.LENGTH_LONG).show();
}
});
upperview.addView(btn, bp);
我试图弄清楚如何使用相同的(X,Y)坐标来计算不同屏幕上的准确位置,谁能帮助我这样做屏幕高度和宽度之间的关系是什么? (X , y) 坐标与屏幕尺寸无关
【问题讨论】:
-
您应该了解响应式布局,因为在这方面您没有在确切位置获得热点是因为在您切换手机时父尺寸会发生变化。
-
您想要该热点的确切位置?在 imageview 的中间??
-
不,任何时候都可以。