mardi 19 mai 2015

Display images from list in girdview and save them in sqlite database

This is my first question, I'm new developer, I'm trying to display images that are existing in a list and I want to save them in sqlite database, here is my code (I took the images from databse distant and I display them in this code in a list view but it doesn't look good for me):

public class GetImagesFromDropBox extends Activity {
    ListView list;
    InputStream is;
    ImageView img, img2,myconvertimage;
    Button btn, btn2;
    ImageView imageView;
    Bitmap bitmapOrg;
    String result = "";
     SQLiteDatabase db;

     @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        db=this.openOrCreateDatabase("test.db",Context.MODE_PRIVATE, null);
        db.execSQL("create table tb if not exists tb (a blob )");
            StrictMode.ThreadPolicy threadPolicy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(threadPolicy);
        setContentView(R.layout.listeimages);
        Vector<Bitmap> ImageList = get_From_Cloud();
         SetTheList(ImageList);
    }
    private void SetTheList(Vector<Bitmap> cantactList) {

        list = (ListView) findViewById(R.id.listviewimages);
         ArrayAdapter<Bitmap> adapter = new MY_ArrayAdapter(GetImagesFromDropBox.this,R.layout.rowimages, cantactList);
         list.setAdapter(adapter);


        /* list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> adapter, View viewClicked, int position,long id) {


          saveImage(viewClicked);


                }

            private void saveImage(View view ) {

            FileInputStream fis = new FileInputStream();





            }});*/



          }
           public class MY_ArrayAdapter extends ArrayAdapter<Bitmap> {
            Vector<Bitmap> liste_user;

            public MY_ArrayAdapter(Context context, int resource,
                    Vector<Bitmap> liste_user) {
                super(context, resource, liste_user);
                this.liste_user = liste_user;
            }



            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                View ItemView = convertView;
                if (ItemView == null) {
                ItemView = getLayoutInflater().inflate(R.layout.rowimages,parent, false);
                                                        }
                Bitmap curentUser = liste_user.get(position);

               ImageView img=(ImageView)ItemView.findViewById(R.id.imagefromdropboxxx);
               img.setImageBitmap(curentUser);

             return ItemView;
             }
            }


    private Vector<Bitmap> get_From_Cloud() {
        String str1 = "";
        Vector<Bitmap> imageviewslist = new Vector<Bitmap>();

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

        nameValuePairs.add(new BasicNameValuePair("mode", "charger"));
        nameValuePairs.add(new BasicNameValuePair("nom", "img1200"));

        try {

            HttpClient httpclient = new DefaultHttpClient();

            HttpPost httppost = new

            HttpPost("http://ift.tt/1PuTEVt");

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);

            HttpEntity entity = response.getEntity();

            is = entity.getContent();

        } catch (Exception e) {

            Log.e("log_tag", "Error in http connection " + e.toString());

        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;

            int j = 0;
            while ((line = reader.readLine()) != null) {
                j++;
                if (j >= 3) {
                    sb.append(line + "\n");
                }
            }
            is.close();
            result = sb.toString();

        } catch (Exception e) {
            Log.e("log_tag", "Error converting result " + e.toString());
        }
        // Parse les données JSON
        try {
            Vector<ImageBytes> imagebyte = new Vector<ImageBytes>();
            JSONArray jArray = new JSONArray(result);
            for (int i = 0; i < jArray.length(); i++) {
                JSONObject json_data = jArray.getJSONObject(i);
                int id = json_data.getInt("id");
                String nom = json_data.getString("nom");
                str1 = json_data.getString("contenue");
                Log.e(" ID  of image ", "  " + id);
                imagebyte.add(new ImageBytes(nom, id, str1));

            }
            for (int i = 0; i < imagebyte.size(); i++) {
                byte[] ba2 = Base64.decode(imagebyte.get(i).getBa());
                Bitmap bitmap = BitmapFactory.decodeByteArray(ba2, 0, ba2.length);

                imageviewslist.add(bitmap);
            }



        } catch (JSONException e) {
            Log.e("log_tag", "Error parsing data " + e.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return imageviewslist;
    }
}

Aucun commentaire:

Enregistrer un commentaire