2013-09-19 2 views
0

У меня есть собственное представление списка, имеющее изображение. Теперь мне нужно получить это изображение из одной активности в другую. Я использовал следующий код. Он работает, но он извлекает один и тот же размер изображения из списка в другой, но мне нужно исправить его размер в соответствии с другим действием.Передача изображения из списка в другую деятельность

ImageView imageview = (ImageView)itemView.findViewById(R.id.yourImageview); 
     Bitmap bitmap = ((BitmapDrawable)imageview.getDrawable()).getBitmap(); 
     Intent intent = new Intent(activity.this, Nextactivity.class); 
     intent.putExtra("contentTwo", bitmap); 

    Bitmap receivedimage =(Bitmap) intent.getParcelableExtra("contentTwo"); 
    imageview = (ImageView) findViewById(R.id.yourimageview); 
    imageview.setImageBitmap(receivedimage); 

Адаптер Код:

public Screen(Activity a, 
     ArrayList<Data> DataList) { 
    // TODO Auto-generated constructor stub 
    activity = a; 
    bleepDraftDataList = draftDataList; 
    inflater = (LayoutInflater) activity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    imageLoader = new ImageLoader(activity.getApplicationContext()); 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return bleepDraftDataList.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

private class ViewHolder { 
    private ImageView imageViewleft; 
    private ImageView imageViewlright; 

} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    Data = DataList.get(position); 
    view = convertView; 
    final ViewHolder holder; 
    if (convertView == null) { 

     view = inflater.inflate(R.layout.something, null); 

     holder = new ViewHolder(); 
     holder.imageViewleft = (ImageView) view 
       .findViewById(R.id.imageViewBleeplinecellleft); 
     holder.imageViewlright = (ImageView) view 
       .findViewById(R.id.imageViewBleeplinecellright); 



     view.setTag(holder); 

    } else { 

     holder = (ViewHolder) view.getTag(); 
    } 
    if (!Data.creator.image.equals("")) { 
     holder.imageViewleft.setTag("" 
       + Data.creator.image); 
     imageLoader.DisplayImage("" + Data.creator.image, 
       activity, holder.imageViewleft); 
    } 
    if (!Data.preview.equals("")) { 
     holder.imageViewright.setTag("" 
       + Data.preview); 
     imageLoader.DisplayImage("" + Data.preview, activity, 
    return view 
} 

}

+0

Я думаю, что более простая и менее пространственная точка зрения вы должны использовать один статический объект растрового изображения, поэтому он назначается в элементе списка и использует его для другого действия по их статической ссылке ... Wat You Think? –

+0

проблема, вы принимаете растровое изображение из imageview в listview, поэтому он возвращает размер только этого изображения. Вместо этого попробуйте создать оригинальное растровое изображение, которое вы установили для imageView .. Пожалуйста, вставьте код адаптера, чтобы он был полезен ... –

+0

@Anilkumar У меня была вставка моего кода адаптера .. –

ответ

1

использование этого и установить, насколько велика вы хотите, чтобы изображение было

receivedimage = Bitmap.createScaledBitmap(receivedimage , 260, 260, false); 

    // 260*260 Width* height change this to your requirement 

Другая вещь, которую вы можете сделать это, В PutExtras получить путь изображения

Bitmap receivedimage = BitmapFactory.decodeFile(imagepath); 

    imageview.setImageBitmap(receivedimage); 
+0

Выполняя первый метод, он работает, но дает изображение размытия –

+0

@PratibhaSharma использует второй метод, используя путь изображения – Metalhead1247

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