Уважаемые все, я использую PagerView для создания изображений слайдера, и все пошло хорошо, если я использую изображения URL и массив строк из нарисованных изображений.
Но когда я использую файл, хранящийся в каталоге моего приложения, это не такработа, вы увидите мой код здесь.java
package com.samcotec.pager2;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
ArrayList<Bitmap> bitmap = new ArrayList<Bitmap>();
ViewPager viewPager;
BitmapPagerAdapter bitmapPagerAdapter;
String imgPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgPath = "/data/data/" + this.getPackageName() + "/" + "quranIMG/";
File savefliepath = new File(imgPath);
if(!savefliepath.exists()){
System.out.println("file not exist: " + imgPath);
savefliepath.mkdir();
}else{
//System.out.println("file exist: " + imgPath);
}
final AssetManager assetManager = getAssets();
String[] list;
InputStream f;
String FileName;
String URLPATH = "http://192.168.100.12/quran/";
Integer StartFrom = 100;
Integer EndTo = 150;
for(int i = StartFrom; i <= EndTo; i++){
FileName = "a-("+i+").png";
File savefile = new File(imgPath + FileName);
if(!savefile.exists()){
// tools.copyAssets(assetManager,Path);
DownloadTask downloadTask = new DownloadTask(URLPATH,imgPath,FileName);
}else{
}
// imgList.add(i);
}
// TODO : we must check internet connection if its ok
for (int i = StartFrom; i<EndTo; i++){
String b = imgPath + "a-("+i+").png";
// System.out.println("file exists" + b);
FileInputStream fiStream;
File imgFile = new File(getFilesDir(), b);
Bitmap bit;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
if(imgFile.exists()){
try{
fiStream = MainActivity.this.openFileInput(b);
bit = BitmapFactory.decodeStream(fiStream);
bitmap.add(bit);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}else{
DownloadTask downloadTask = new DownloadTask(URLPATH,imgPath,"a-("+i+").png");
File imgFile1 = new File(getFilesDir(), b);
if(imgFile1.exists()) {
try{
fiStream = MainActivity.this.openFileInput(b);
bit = BitmapFactory.decodeStream(fiStream);
bitmap.add(bit);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}else{
bit = null;
}
}
}
viewPager = (ViewPager) findViewById(R.id.viewPager);
bitmapPagerAdapter = new BitmapPagerAdapter(MainActivity.this,bitmap);
viewPager.setAdapter(bitmapPagerAdapter);
}
}
Я использую некоторые инструменты для загрузки файлов и их сохранения в imgPath. Изображения загружаются и сохраняются, и это не проблема, но проблема в том, что
bitmap.size();
всегда пуста, аПриложение разбилось