【发布时间】:2014-10-09 09:19:08
【问题描述】:
我有一个(几乎)二次 ImageView,其中包含一个图像和一个滑块,它应该允许用户在 ImageView 边界内缩放图像。图像应该始终贴在 ImageView 的边框上,所以我想要一个缩放功能而不改变任何尺寸。目前我的图片已经初始化太大了,如果我触发滑块会变得越来越大。
我的 xml:
<View id=imageContainer>
<ImageView id="picture" top="0" left="30" height="120" width="120"></ImageView>
<View id="imagePreferences">
<Label id="scaleLabel">Foto skalieren</Label>
<Slider id="scaleSlider" onChange="scalePicture"></Slider>
</View>
</View>
我的 tss
"#imageContainer": {
top: "80",
left: "0",
height: "120",
width: "90%"
}
"#picture": {
top: "0",
left: "0",
height: "120",
width: "40%"
}
"#imagePreferences": {
top: "0",
right: "0",
height: "120",
width: "40%"
}
"#scaleLabel": {
top: "0",
left: "0",
height: "10",
font: {
fontSize: 8
}
}
"#scaleSlider": {
top: "10",
left: "0",
min: "0",
max: "100",
value: "0",
height: "10",
thumbImage: "/media/slider_btn.png"
}
还有我的 js:
var image;
var imageSet = false;
var imageMatrix;
var file = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, "savedChallengeImage.jpeg");
if(file) {
$.picture.setImage(file);
image = file;
imageSet = true;
imageMatrix = Titanium.UI.create2DMatrix();
}
function scalePicture(e) {
if (imageSet) {
var scale = Titanium.UI.createAnimation();
imageMatrix = imageMatrix.scale(e.Value);
scale.transform = imageMatrix;
scale.duration = 0;
$.picture.animate(scale);
}
}
【问题讨论】:
-
尝试将
min : '-10'max : '10'和value : '0'设置为#scaleSlider
标签: javascript image titanium