求一个实现android布局文件整体缩放的实现方法
一个项目的需要,求高手解答。在一个相对布局relativelayout中放多个imageview,每个imageview都可以执行平移、缩放操作,这个布局的长度已经超出了...
一个项目的需要,求高手解答。在一个相对布局relativelayout中放多个imageview,每个imageview都可以执行平移、缩放操作,这个布局的长度已经超出了屏幕的长,高度等于屏幕的高,这个已经实现。目前的的难点是要将整个布局缩小,使得布局长度等于屏幕的长度,而且也每个imageview都要按比例相应的缩小,而且依然能执行平移缩放。我能想到的办法就是缩小relativelayout这个布局,用的是ScaleAnimation。但是整体缩放以后,里面的imageview就不能正常缩放了。
请高手给一个解决方案,不胜感激! 展开
请高手给一个解决方案,不胜感激! 展开
3个回答
展开全部
题主可以先继承布局类,如另写一个类继承LineatLayout ,然后实现onMeasure()方法,在方法里面获取布局的宽度和高度,再根据获取到的宽度和高度 设置控件内元素的宽高,比如元素Title的高 TitleHeight = measureHeight *0.5 ,意思是占布局高的二分之一,这时就可以整体缩放了。
onmeasure()内获取宽高的方法:
int measureWidth = measureWidth(widthMeasureSpec);
int measureHeight = measureHeight(heightMeasureSpec);
其中宽度的函数:
private int measureWidth(int widthMeasureSpec) {
int specMode = MeasureSpec.getMode(widthMeasureSpec);
int specSize = MeasureSpec.getSize(widthMeasureSpec);
int result = 500;
if (specMode == MeasureSpec.AT_MOST) {
result = specSize;
} else if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
}
return result;
}
onmeasure()内获取宽高的方法:
int measureWidth = measureWidth(widthMeasureSpec);
int measureHeight = measureHeight(heightMeasureSpec);
其中宽度的函数:
private int measureWidth(int widthMeasureSpec) {
int specMode = MeasureSpec.getMode(widthMeasureSpec);
int specSize = MeasureSpec.getSize(widthMeasureSpec);
int result = 500;
if (specMode == MeasureSpec.AT_MOST) {
result = specSize;
} else if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
}
return result;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过设置scaleX和scaleY来缩放。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加载新的SurfaceView布局文件并不直接创建一个实现的SurfaceView一个类可以,创建活动
追问
谢谢你的回答,能不能说的具体一点呢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询