Android从相机水平滚动视图列表视图显示图像

时间:2015-09-14 10:29:13

标签: android listview

我想在Horizo​​ntalScrollView Images中显示来自相机的图像。

目前,在列表视图的每个项目中都添加了Horizo​​ntalScrollView和每个项目 Horizo​​ntalScrollView根据从sqlite获取的数据动态显示图像。 Sqlite预装了从我们的应用程序服务器下载的数据。

此外,在每个列表项目中,相机'按钮已添加。单击此按钮的单击事件。我将从Camera捕获的图像添加到现有的Horizo​​ntalScrollView。

我正在从我的应用程序中添加一些代码片段 -

1)首先,我试图在ArrayAdapter中的sqlite中在Horizo​​ntalScrollView中动态显示图像 -

@Override
            public View getView(int position, View convertView, ViewGroup parent)
            {
                View row = convertView;
                final Holder holder;
                if (row == null)
                {
                    LayoutInflater vi;
                    vi = LayoutInflater.from(getContext());
                    row = vi.inflate(R.layout.all_post_row, null);
                    holder = new Holder();
                    holder.horizontalScrollView = (HorizontalScrollView)row.findViewById(R.id.hlist);
                    holder.lLinearLayout=(LinearLayout)row.findViewById(R.id.innerlay);


                    row.setTag(holder);
                }
                else
                {
                    holder = (Holder) row.getTag();

                }

                final All_Post all_Post = data.get(position);
                String strListItem_ActivityId = all_Post.getStrActivityId();
                Log.e("strListItem_ActivityId ", " = " + strListItem_ActivityId);
                dbhelper = new MyDbHelper(AllPosts_Page.this);
                SQLiteDatabase db = dbhelper.getReadableDatabase();
                Cursor cursor = db.rawQuery("select * from ActivityObjectList where activityId " + "= ? ", new String[]{strListItem_ActivityId});
                imageArray.clear();
                if (cursor.moveToFirst())
                {
                    do
                    {
                        String imagePath = cursor.getString(cursor.getColumnIndex("imageaudioPath"));
                        Log.e("imagePath ", " = " + imagePath);
                        imageArray.add(imagePath);
                    }
                    while (cursor.moveToNext());
                }
                cursor.close();
                db.close();

                 holder.lLinearLayout.removeAllViews();
                final Iterator<String> it = imageArray.iterator();
                while (it.hasNext())
                {
                    final String imgElement = it.next();
                    int imgArraySize = imageArray.size();
                    Log.e("imgArraySize "," = " + imgArraySize);

                    final ImageView imageView = new ImageView (getContext());
                    final ProgressBar pBar = new ProgressBar(getContext(),null ,android.R.attr.progressBarStyleSmall);

                    imageView.setTag(it);
                    pBar.setTag(it);
                    imageView.setImageResource(R.drawable.img_placeholder);
                    pBar.setVisibility(View.VISIBLE);


                                Uri uri = Uri.fromFile(new File(path));
                                Picasso.with(getContext()).load(uri).placeholder(R.drawable.img_placeholder).resize(newWidth,fixHeight).into(imageView, new com.squareup.picasso.Callback() {
                                    @Override
                                    public void onSuccess() {
                                        if (pBar != null) {
                                            pBar.setVisibility(View.GONE);
                                        }
                                    }

                                    @Override
                                    public void onError() {

                                    }
                                });

                                holder.lLinearLayout.addView(imageView);
                                holder.lLinearLayout.addView(pBar);
    }

2)2)这是我在ArrayAdapter类中的Camera按钮单击事件 -

 holder.imgBtn_Camera.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                  Toast.makeText(context, "Camera" + " = ", Toast.LENGTH_SHORT).show();
                    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
                }
            });

3)这是onActivityResult方法实现,它位于Activity类 -

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == CAMERA_PIC_REQUEST)
        {
            activityObj_Id++;
            intoString = Integer.toString(activityObj_Id);

            SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
            String dateformat = s.format(new Date());
            Log.e("format", " and activityObj_Id = " + dateformat + " & " +   activityObj_Id);

            imageCamera_Path = activityObj_Id +"_"+ dateformat+".png";
            downloadstatus = "1";
            Log.e("imageCamera_Path", "= " + imageCamera_Path);

            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            //imageView.setImageBitmap(thumbnail);

            }
        Log.e("Data Save","in onActivityResult Succesfully !!!!");
    }

上面的代码应该显示从相机捕获到Horizo​​ntalScrollView的图像。但是,图像不会添加到滚动视图中。我无法理解它出了什么问题?我试图以多种方式修改代码。但它没有帮助。

请查看我的代码段,并告诉我是否遗漏了任何内容。

感谢。

0 个答案:

没有答案