2015-08-10 2 views
0

У меня есть Editext и одна кнопка (в Activity1), когда пользователь записывает номер (n) в Edittext и нажимает Button => show (n) ImageView ==> Я могу это сделать , но i не может принимать изображение с SD-карты в Activity2. Что я должен делать. Помогите мне?Как делать снимки с SD-карты

MainClass

public class MainActivity extends Activity implements AdapterView.OnItemLongClickListener { 
    static Integer[] INTENT_REQUEST_CODE_BROWSE_PICTURE; 
    ListView list; 
    String textEncode = null; 
    mylist my; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     list = (ListView) findViewById(R.id.list); 
     Intent intent = getIntent(); 
     int b = intent.getIntExtra("number", 0); 
     getdata(b); 
     list.setOnItemLongClickListener(this); 
    } 
    public void getdata(int a) { 
      SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this); 
     textEncode = shre.getString("image",""); 
     String[] itemname = new String[a]; 
     Integer[] imgid = new Integer[a]; 
     for (int i = 0; i < a; i++) { 
      itemname[i] = "DEMO"; 
       byte[] c = Base64.decode(textEncode, Base64.DEFAULT); 
      Bitmap bitmap = BitmapFactory.decodeByteArray(c, 0, c.length); 
      imgid[i] = R.drawable.sample_2; 
      mylist adapter = new mylist(this, itemname, imgid); 
      list.setAdapter(adapter); 
      my.imageView.setImageBitmap(bitmap); 
      // list.setImageBitmap(bitmap); 
     } 
    } 
    protected void onActivityResult(int requestCode, int resultCode, 
            Intent intent) { 
     Intent intent1 = getIntent(); 
     int b = intent1.getIntExtra("number", 0); 
     for (int i = 0; i < b; i++) { 
      INTENT_REQUEST_CODE_BROWSE_PICTURE = new Integer[b]; 
      if (INTENT_REQUEST_CODE_BROWSE_PICTURE[i] == i) { 
       if (resultCode == Activity.RESULT_OK) { 
        execute(intent, "image", b); 
       } 
      } 
     } 
    } 
    public void execute(Intent intent, String a, int d) { 
     InputStream stream; 
     try { 
      stream = getContentResolver().openInputStream(intent.getData()); 
      Bitmap realImage = BitmapFactory.decodeStream(stream); 
      ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
      realImage.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
      byte[] b = baos.toByteArray(); 
      String encodedImage = Base64.encodeToString(b, Base64.DEFAULT); 
      SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this); 
      SharedPreferences.Editor edit = shre.edit(); 
      for (int i = 0; i < d; i++) { 
       edit.putString(a + String.valueOf(i), encodedImage); 
       edit.commit(); 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
    }`` 
    @Override 
    public boolean onItemLongClick(AdapterView<?> parent, View view, int 
position, long id) { 
     Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     intent.addCategory(Intent.CATEGORY_OPENABLE); 
     startActivity(intent); 
     Intent intent1=getIntent(); 
     int b=intent1.getIntExtra("number", 0); 
     for (int i = 0; i <b; i++) { 
     if(position==i){ 
       startActivityForResult(intent, 
         INTENT_REQUEST_CODE_BROWSE_PICTURE[i]); 
      } 
    } 
    return true; 

    } 
} 

MyList (активность)

public class mylist extends ArrayAdapter<String> { 

    private Activity context; 
    private String[] itemname; 
    private Integer[] imgid; 
    ImageView imageView; 
    public mylist(Activity context, String[] itemname, Integer[] imgid) { 
     super(context, R.layout.activity_mylist2, itemname); 
     // TODO Auto-generated constructor stub 
     this.context = context; 
     this.itemname = itemname; 
     this.imgid = imgid; 
    } 

    public View getView(int position,View view,ViewGroup parent) { 
     LayoutInflater inflater=context.getLayoutInflater(); 
     View rowView=inflater.inflate(R.layout.activity_mylist2, null, true); 

     TextView txtTitle = (TextView) rowView.findViewById(R.id.item); 
     imageView = (ImageView) rowView.findViewById(R.id.icon); 
     TextView extratxt = (TextView) rowView.findViewById(R.id.textView1); 

     txtTitle.setText(itemname[position]); 
     imageView.setImageResource(imgid[position]); 
     extratxt.setText("Description "+itemname[position]); 
     return rowView; 
    }; 


} 

Sendata (активность)

public class Senddata extends ActionBarActivity { 

    Button button; 
    EditText edit; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_senddata); 

     button=(Button) findViewById(R.id.send); 
     edit=(EditText) findViewById(R.id.text1); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(getApplicationContext(),MainActivity.class); 
       intent.putExtra("number",Integer.parseInt(edit.getText().toString())); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

ответ

0

Ниже код должен помочь

File f = new File("/mnt/sdcard/photo.jpg"); 
ImageView mImgView1 = (ImageView)findViewById(R.id.imageView); 
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath()); 
mImgView1.setImageBitmap(bmp); 
+0

@ Duong: anh có thể nói cụ thể tí không ạ? Hi –

Смежные вопросы