前导零的字符串剪切
我有很多图片的数字结尾像page_001,page_002 ... page_148。现在我不确定如何在使用Universal image Loader的ViewPager中实现它们。前导零的字符串剪切
这是我的instantiateItem
方法,现在我有一个修复图像用于测试目的。我如何格式化FileName结尾,以便我可以使用Position来指示应该加载哪个图像?或者其他方式?
001 - > 1 002 - > 2 .. 148 - > 148
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
imageLoader.displayImage(String.format("%s%s/%s_Page_001.jpg", mProtocolPathName, mFilDir, mFilDir), imageView, options);
container.addView(imageView);
return imageView;
}
3I使用mFileNumber作为文件编号,但是这应该给你一个想法如何去做。
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
imageLoader.displayImage(String.format("%s%s/%s_Page_%03d.jpg", mProtocolPathName, mFilDir, mFilDir, mFileNumber), imageView, options);
container.addView(imageView);
return imageView;
}
喜欢这个?
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(mContext);
imageLoader.displayImage(String.format("%s%s/%s_Page_%03d.jpg", mProtocolPathName, mFilDir, mFilDir, position), imageView, options);
container.addView(imageView);
return imageView;
}
使用String.replaceFirst("^0+(?!$)", "")
来切断前导零。 或在你的情况下,从字符串中提取数字Integer.valueOf(String.split("page_")[1].replaceFirst("^0+(?!$)", ""));
这不会取代所有*零,包括那些所需的零吗?我的意思是这不会像“453.jpg”那样改变“4053.jpg”吗? – 2014-10-08 12:30:30
你说得对,现在已经修好了。谢谢 – slezadav 2014-10-08 12:42:02
这个工作适用于所有的数字吗?也喜欢4和更多? – 2014-10-08 12:48:55
工作感谢!现在看起来像这样 imageLoader.displayImage(String.format(“%s%s /%s_Page_%03d.jpg”,mProtocolPathName,mFilDir,mFilDir,position + 1),imageView,options); 你能解释一下%3d发生了什么吗? – 2014-10-08 12:37:00
这意味着您希望字符串的总长度为3个字符,并且您希望它填充0。第一个字符“0”是填充字符,第二个“3”是总长度。 – Brian 2014-10-08 12:44:31
如果文件的结尾是page_10000,会发生什么情况?这会削减什么? – 2014-10-08 13:02:08