为什么拍摄的图像不断变化? [英] why the captured image keep on changing?

查看:124
本文介绍了为什么拍摄的图像不断变化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过拍摄的图像从C到B,最后以的ListView A.当单击一个活动列表,它会显示通过图片的ImageView 和价值观 EDITTEXT B。但现在的问题是在活动B显示的图像不是从行我点击了列表视图 A。

I'm trying to pass captured image and valuefrom C to B, finally to listView A. When the list in Activity A is clicked, it will display the passed image on imageView and values on editText B . But the problem now is the image displayed on Activity B is not from row I have clicked on listview A.

活动A

ArrayAdapter<String> adapter;
ArrayList<String> m_listItems = new ArrayList<String>();
int mClickedPosition;
adapter=new ArrayAdapter<String (getActivity(),R.layout.claims,R.id.textView1,m_listItems);
listV = (ListView) claims.findViewById(R.id.listView1);

       listV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> listView, View view,int position, long id) 
            {
            mClickedPosition = position;
            String temp[] = m_listItems.get(position).split("\\s\\s+");
            result = temp[temp.length - 1].trim();
            result = result.replace("RM", "");
            name = temp[1].trim();
            Log.e("TAG", result + "");
            if (name.equals("Project"))
             {
                Intent intent = new Intent(Claims1.this.getActivity(), Project1.class);
                intent.putExtra("bitmap", true);
                intent.putExtra("name", name);
                intent.putExtra("result", result);
                startActivityForResult(intent, 0);
                Log.e("RESULT", "Result= " + result);
               }
             }
           });


       @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case 0:  // for Project
        result = data.getStringExtra("text"); //get from B
        name = data.getStringExtra("a");
        description = data.getStringExtra("c");
       Log.d("FIRST", "result:" + result);
       Text = "  " + name + "    " + "RM" + result + "";
       if (mClickedPosition == -1)
      { // if is icon button clicked
            m_listItems.add(Text);
       }
       else 
      {
            m_listItems.set(mClickedPosition, Text);
      }
            adapter.notifyDataSetChanged();
            listV.setAdapter(adapter);
            break;
      }
    }

活动B

     if(getIntent().getExtras()!=null) { //if  has value pass from A
                final String Amount = getIntent().getExtras().getString("result");
                final String description1 = getIntent().getExtras().getString("description");
                txt1.setText(description1);
                txt.setText(Amount);
            }

                    b.setOnClickListener(new View.OnClickListener() {  // return to A
                        public void onClick(View arg0) {
                            Intent returnIntent = new Intent();
                            a = "Project";
                            text = txt.getText().toString(); // amount
                            returnIntent.putExtra("text", text);
                            returnIntent.putExtra("a", a);
                            returnIntent.putExtra("c", c); // receive from Activity C
                            setResult(Activity.RESULT_OK, returnIntent);
                           finish();
                        }
                    });
                           viewImage.setImageBitmap(Global.img); // image receive from C
                      } 

 public void onActivityResult(int requestCode,int resultCode, Intent data)
    {  //receive from C
        if(requestCode==PROJECT_REQUEST_CODE) {
            if(data!=null&&data.hasExtra("text")) {
                c = data.getStringExtra("text");
                txt1.setText(c);
                viewImage.setImageBitmap(Global.img); //display image 
            }
}
        else if (requestCode==CAMERA_REQUEST_CODE)
        {
        }
    }

活动ç

ImageView b; 
 ok.setOnClickListener(new View.OnClickListener()
        {   // return image to B
            public void onClick(View arg0)
            {
                Intent returnIntent=new Intent();
                text=t.getText().toString();
                b.setDrawingCacheEnabled(true);
                b.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                        View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
                b.layout(0, 0, b.getMeasuredWidth(), b.getMeasuredHeight());
                b.buildDrawingCache(true);
                returnIntent.putExtra("text", text);
                if (b.getDrawingCache() != null) {
                    Bitmap bitmap = Bitmap.createBitmap(b.getDrawingCache());
                    if (bitmap == null) {
                        Log.e("TAG", "getDrawingCache() == null");
                    }
                    Global.img = bitmap;
                }
                setResult(Activity.RESULT_OK, returnIntent);
                finish();
            }
        });
    }

添加图片到数据库

在确定按钮中的活动A 被点击,我希望所有的图像保存到数据库

When ok button in Activity A is clicked, I want save all the image todatabase.

 button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                     byte[] data=getBitmapAsByteArray(getActivity(),Global.img);// this is a function
                     SB.insertStaffBenefit(data);
                    }
                }


            }

  public static byte[] getBitmapAsByteArray(final Context context,Bitmap bitmap) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 0, outputStream);
        Toast.makeText(context, outputStream.size()/1024+"KB", Toast.LENGTH_LONG).show();
        return outputStream.toByteArray();
    }

1 :的 ListView控件中的一个。值分别获得FOM C和B

1: ListView in A. Values were get fom C and B.

2 :的活动B 。假设单击列表,意图B.指出,价值和形象从活动C和B

2: Activity B. Assume the list is clicked and intent to B. Noted that the value and image are from Activity C and B.

3 :的新价值和图像添加并返回到

4 :的两个列表活动A现在

5 :的当一个列表点击,图像变化

推荐答案

您可以添加位图数组列表(在你的活动A):

You may add bitmap array list (in your Activity A):

ArrayList<Bitmap> m_listBitmapItems = new ArrayList<Bitmap>();

在您listV的onItemClick:

in onItemClick of your listV:

Global.img = m_listBitmapItems.get(position);

在的onActivityResult():

in onActivityResult():

if (mClickedPosition == -1)
{ // if is icon button clicked
    m_listItems.add(Text);
    m_listBitmapItems.add(Global.img);
}
else
{
    m_listItems.set(mClickedPosition, Text);
    m_listBitmapItems.set(mClickedPosition, Global.img);
}

这篇关于为什么拍摄的图像不断变化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆