2014-10-08 109 views
1

我有很多圖片的數字結尾像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; 
} 

回答

1

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; 
} 
+0

工作感謝!現在看起來像這樣 imageLoader.displayImage(String.format(「%s%s /%s_Page_%03d.jpg」,mProtocolPathName,mFilDir,mFilDir,position + 1),imageView,options); 你能解釋一下%3d發生了什麼嗎? – 2014-10-08 12:37:00

+0

這意味着您希望字符串的總長度爲3個字符,並且您希望它填充0。第一個字符「0」是填充字符,第二個「3」是總長度。 – Brian 2014-10-08 12:44:31

+0

如果文件的結尾是page_10000,會發生什麼情況?這會削減什麼? – 2014-10-08 13:02:08

1

喜歡這個?

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; 
} 
0

使用String.replaceFirst("^0+(?!$)", "")來切斷前導零。 或在你的情況下,從字符串中提取數字Integer.valueOf(String.split("page_")[1].replaceFirst("^0+(?!$)", ""));

+0

這不會取代所有*零,包括那些所需的零嗎?我的意思是這不會像「453.jpg」那樣改變「4053.jpg」嗎? – 2014-10-08 12:30:30

+0

你說得對,現在已經修好了。謝謝 – slezadav 2014-10-08 12:42:02

+0

這個工作適用於所有的數字嗎?也喜歡4和更多? – 2014-10-08 12:48:55