希望各位兄弟能给小弟一些建议,谢谢!
10 个解决方案
#1
希望能得到参考代码或者思路,谢谢!
jiushao10@163.com
jiushao10@163.com
#2
有一个timer 类用定时器
然后用drawString在屏幕上绘制
在timer 对象中有个run函数可以 ,改变drawString的参数;就可以绘制滚动条了 。
例如:
private Timer tm3=null;
if(tm3==null)
{
tm3=new Timer();
tm3start();
}
public void tm3start()
{
tm3.schedule(new TimerTask(){
public void run()
{
if(i>500)
{
i=0;
}
else
{
i+=2;
}
}
}, 0, 50);
}
public void drawMark(Graphics g)
{
g.setColor(255,0,0);
g.drawString("滚动字幕 ", 240-MarkCount, 3, Graphics.LEFT|Graphics.TOP);
}
public void paint(){
drawMark(g);
}
然后用drawString在屏幕上绘制
在timer 对象中有个run函数可以 ,改变drawString的参数;就可以绘制滚动条了 。
例如:
private Timer tm3=null;
if(tm3==null)
{
tm3=new Timer();
tm3start();
}
public void tm3start()
{
tm3.schedule(new TimerTask(){
public void run()
{
if(i>500)
{
i=0;
}
else
{
i+=2;
}
}
}, 0, 50);
}
public void drawMark(Graphics g)
{
g.setColor(255,0,0);
g.drawString("滚动字幕 ", 240-MarkCount, 3, Graphics.LEFT|Graphics.TOP);
}
public void paint(){
drawMark(g);
}
#3
你可以这样做,把要绘制的内容做索引,前提是没一行的东西的所占的行距是一样的。根据每一个元素的索引去绘制。按键控制屏幕坐标的移动。在canvas的边上绘制一个滚动条,根据实际的绘制元素所在的比例,调整滚动条的状态。
#4
this.scrollHeight = 13 *(this.screenHeight) * (this.screenHeight)/(20*numHeight); this.scrollY =13 * (-this.regionY)*(this.screenHeight)/(20*numHeight);
scrollHeight 滚动条的长度
scrollY 滚动条现在的位置Y坐标
numHeight 显示的高度到了哪个位置
我现在用的是这个,不过还是不太合理,有时滚动条会超出scrollHeight范围
scrollHeight 滚动条的长度
scrollY 滚动条现在的位置Y坐标
numHeight 显示的高度到了哪个位置
我现在用的是这个,不过还是不太合理,有时滚动条会超出scrollHeight范围
#5
边界的值你可以强制画到底部.毕竟是均分,会有你说的那种超出的情况的
#6
谢谢楼上兄弟!
真的没办法处理它不会超出了吗?
真的没办法处理它不会超出了吗?
#7
if(滑块Y+滑块高>滚动条Y+滚动条高)//可以加行修正代码
滑块Y=滚动条Y+滚动条高-滑块高;
滑块Y=滚动条Y+滚动条高-滑块高;
#8
我按照亚日的方法去想,想出来的式子都不太适合,可能自己太菜了,请问哪位高手有没有代码参考一下吗?谢谢
#9
我曾经也为这个东西苦恼过,不过现在看来还是很简单的,就两个比例嘛:
第一个,定义滚动条的高度h,已知滚动区域高度H,需要显示的东西的高度SH,和一次可显示的高度sh,那么
h/H = sh/SH;
第二个,与第一个类似,定义当前显示的物体的偏移(offset),已知当前滚动条的y,那么
y/H = offset/SH
第一个,定义滚动条的高度h,已知滚动区域高度H,需要显示的东西的高度SH,和一次可显示的高度sh,那么
h/H = sh/SH;
第二个,与第一个类似,定义当前显示的物体的偏移(offset),已知当前滚动条的y,那么
y/H = offset/SH
#10
楼上的哥们,第二个算法我试了,不过offset有点大,滚动条都移动到下面去了
#1
希望能得到参考代码或者思路,谢谢!
jiushao10@163.com
jiushao10@163.com
#2
有一个timer 类用定时器
然后用drawString在屏幕上绘制
在timer 对象中有个run函数可以 ,改变drawString的参数;就可以绘制滚动条了 。
例如:
private Timer tm3=null;
if(tm3==null)
{
tm3=new Timer();
tm3start();
}
public void tm3start()
{
tm3.schedule(new TimerTask(){
public void run()
{
if(i>500)
{
i=0;
}
else
{
i+=2;
}
}
}, 0, 50);
}
public void drawMark(Graphics g)
{
g.setColor(255,0,0);
g.drawString("滚动字幕 ", 240-MarkCount, 3, Graphics.LEFT|Graphics.TOP);
}
public void paint(){
drawMark(g);
}
然后用drawString在屏幕上绘制
在timer 对象中有个run函数可以 ,改变drawString的参数;就可以绘制滚动条了 。
例如:
private Timer tm3=null;
if(tm3==null)
{
tm3=new Timer();
tm3start();
}
public void tm3start()
{
tm3.schedule(new TimerTask(){
public void run()
{
if(i>500)
{
i=0;
}
else
{
i+=2;
}
}
}, 0, 50);
}
public void drawMark(Graphics g)
{
g.setColor(255,0,0);
g.drawString("滚动字幕 ", 240-MarkCount, 3, Graphics.LEFT|Graphics.TOP);
}
public void paint(){
drawMark(g);
}
#3
你可以这样做,把要绘制的内容做索引,前提是没一行的东西的所占的行距是一样的。根据每一个元素的索引去绘制。按键控制屏幕坐标的移动。在canvas的边上绘制一个滚动条,根据实际的绘制元素所在的比例,调整滚动条的状态。
#4
this.scrollHeight = 13 *(this.screenHeight) * (this.screenHeight)/(20*numHeight); this.scrollY =13 * (-this.regionY)*(this.screenHeight)/(20*numHeight);
scrollHeight 滚动条的长度
scrollY 滚动条现在的位置Y坐标
numHeight 显示的高度到了哪个位置
我现在用的是这个,不过还是不太合理,有时滚动条会超出scrollHeight范围
scrollHeight 滚动条的长度
scrollY 滚动条现在的位置Y坐标
numHeight 显示的高度到了哪个位置
我现在用的是这个,不过还是不太合理,有时滚动条会超出scrollHeight范围
#5
边界的值你可以强制画到底部.毕竟是均分,会有你说的那种超出的情况的
#6
谢谢楼上兄弟!
真的没办法处理它不会超出了吗?
真的没办法处理它不会超出了吗?
#7
if(滑块Y+滑块高>滚动条Y+滚动条高)//可以加行修正代码
滑块Y=滚动条Y+滚动条高-滑块高;
滑块Y=滚动条Y+滚动条高-滑块高;
#8
我按照亚日的方法去想,想出来的式子都不太适合,可能自己太菜了,请问哪位高手有没有代码参考一下吗?谢谢
#9
我曾经也为这个东西苦恼过,不过现在看来还是很简单的,就两个比例嘛:
第一个,定义滚动条的高度h,已知滚动区域高度H,需要显示的东西的高度SH,和一次可显示的高度sh,那么
h/H = sh/SH;
第二个,与第一个类似,定义当前显示的物体的偏移(offset),已知当前滚动条的y,那么
y/H = offset/SH
第一个,定义滚动条的高度h,已知滚动区域高度H,需要显示的东西的高度SH,和一次可显示的高度sh,那么
h/H = sh/SH;
第二个,与第一个类似,定义当前显示的物体的偏移(offset),已知当前滚动条的y,那么
y/H = offset/SH
#10
楼上的哥们,第二个算法我试了,不过offset有点大,滚动条都移动到下面去了