我如何使用 Angular2 在 Nativescript 中获取图像坐标
How I can get Image coordinate in Nativescript with Angular2
我有一张图片要在我的 nativescript(使用 Angular2)应用程序中显示,我想让图片的不同部分可以点击。比如一张人体图片,我只想知道用户点击了哪个部分。
有没有办法像html一样创建图像映射???
<CardView height="450" width="350" marginTop="10">
<Image src="res://nerves" height="304" width="114" horizontalAlignment="center" verticalAlignment="center"></Image>
</CardView>
在您的 Image
元素上使用 (touch)
事件绑定。
下面是一个示例,当您单击图像的第四象限时打印控制台消息。
import {
Component
} from '@angular/core';
import * as platform from 'platform';
import {
TouchGestureEventData
} from 'tns-core-modules/ui/gestures';
@Component({
moduleId: module.id,
selector: 'your-component',
template: `
<GridLayout>
<Image src="res://your_image" width="128" height="128"
(touch)="touchImage($event)"
verticalAlignment="middle" horizontalAlignment="center"></Image>
</GridLayout>
`
})
export class YourComponent {
touchImage(event: TouchGestureEventData) {
// This is the density of your screen, so we can divide the measured width/height by it.
const scale: number = platform.screen.mainScreen.scale;
if (event.action === 'down') {
// this is the point that the user just clicked on, expressed as x/y
// values between 0 and 1.
const point = {
y: event.getY() / (event.view.getMeasuredHeight() / scale),
x: event.getX() / (event.view.getMeasuredWidth() / scale)
};
// add custom code to figure out if something significant was "hit"
if (point.x > 0.5 && point.y > 0.5) {
console.log('you clicked on the lower right part of the image.');
}
}
}
}
我有一张图片要在我的 nativescript(使用 Angular2)应用程序中显示,我想让图片的不同部分可以点击。比如一张人体图片,我只想知道用户点击了哪个部分。
有没有办法像html一样创建图像映射???
<CardView height="450" width="350" marginTop="10">
<Image src="res://nerves" height="304" width="114" horizontalAlignment="center" verticalAlignment="center"></Image>
</CardView>
在您的 Image
元素上使用 (touch)
事件绑定。
下面是一个示例,当您单击图像的第四象限时打印控制台消息。
import {
Component
} from '@angular/core';
import * as platform from 'platform';
import {
TouchGestureEventData
} from 'tns-core-modules/ui/gestures';
@Component({
moduleId: module.id,
selector: 'your-component',
template: `
<GridLayout>
<Image src="res://your_image" width="128" height="128"
(touch)="touchImage($event)"
verticalAlignment="middle" horizontalAlignment="center"></Image>
</GridLayout>
`
})
export class YourComponent {
touchImage(event: TouchGestureEventData) {
// This is the density of your screen, so we can divide the measured width/height by it.
const scale: number = platform.screen.mainScreen.scale;
if (event.action === 'down') {
// this is the point that the user just clicked on, expressed as x/y
// values between 0 and 1.
const point = {
y: event.getY() / (event.view.getMeasuredHeight() / scale),
x: event.getX() / (event.view.getMeasuredWidth() / scale)
};
// add custom code to figure out if something significant was "hit"
if (point.x > 0.5 && point.y > 0.5) {
console.log('you clicked on the lower right part of the image.');
}
}
}
}