java 采用9图片布局后出现布局重叠(ninepatch.jar 包)

cz12980 2017-01-13 10:01:44
由于项目的界面圆弧边框比较多,全屏显示、再加上不同的屏幕 可能尺寸不一样。不采用整个图片填充,因为压根没有就不知道屏幕的大小应该切多高的图片作为背景。因此采用了android 的9图技术,加入了这个jar包。


import com.android.ninepatch.NinePatch;


9图是可以自适应填充了,但是采用这种方法的9背景,在出现某弹出框框或者,不明操作的时候,就会出现布局错乱。如下图。



文字的中间多了一个不明白的框框。这个框框实际上就是外层的那个9图圆弧背景。但是我不清楚为什么会出现在这个lable四周围。
求有用该9图方法的高手指点一下原因。

以下是调用的代码:

public class PaneUI_9 extends JPanel {
NinePatch ninePatch;

public PaneUI_9(String path) {
ninePatch = loadNinePatch(path);

}


private NinePatch loadNinePatch(String path) {//这里是9图路径
InputStream stream = this.getClass().getResourceAsStream(path);
if (stream != null) {
try {
return NinePatch.load(stream, true, false);
} catch (IOException e) {
System.err.println("An error occurs during loading.");
e.printStackTrace();
return null;
}
} else {
System.err.println("Couldn't find the file: " + path);
return null;
}
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Rectangle clip = g2.getClipBounds();
ninePatch.draw(g2, clip.x, clip.y, clip.width, clip.height);
}
}


以下(正常情况下圆弧9图背景,虽然调用成功,但是会不明原因的出现 上图的重叠效果)是效果:

...全文
262 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cz12980 2017-01-20
  • 打赏
  • 举报
回复
请问有人吗?是不是我的 paintComponent 这里写错啦?
cz12980 2017-01-14
  • 打赏
  • 举报
回复
请问有人帮帮看看嘛?谢谢啦

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧