Получение изображения из ImageView
У меня есть галерея, которая показывает массив изображений, при нажатии они отображаются в представлении изображения. Я хочу, чтобы иметь возможность добавить изображение, которое в настоящее время отображается в списке намерений. Я не могу понять, как выбрать текущее изображение.
Код галереи:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setBackgroundResource(mGalleryItemBackground);
return imageView;
}
Код выбора намерения:
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/png");
share.putExtra(Intent.EXTRA_STREAM,
Uri.parse("android.resource://com.appinfluence.fanapp.v1/drawable/" + Integer.toString(R.drawable.alright)));
startActivity(Intent.createChooser(share, "Share Image"));
Где он говорит R.drawable.alright Мне нужно, чтобы это как переменная текущего изображения каким-то образом. Любые идеи?
Ответы
Ответ 1
Для выбора текущего выбранного вида используйте
Gallery.getSelectedView();
и для получения Drawable из imageView используйте:
ImageVIew.getDrawable()
Если вы хотите получить входной поток от доступного использования следующим образом:
BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable);
Bitmap bitmap = bitmapDrawable .getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(imageInByte);
Ответ 2
l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView textView=(TextView)view.findViewById(R.id.textView);
ImageView imageView=(ImageView)view.findViewById(R.id.imageView);
String textViewString=textView.getText().toString();
Bitmap image=((BitmapDrawable)imageView.getDrawable()).getBitmap();
DialogClass dialogClass=new DialogClass(MainActivity.this,image,textViewString);
dialogClass.show();
}
});
Ответ 3
Моя лучшая функция
public class MainActivity extends Activity {
private ImageView imgView,bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgView=(ImageView) findViewById(R.id.imgView);
bitmap=(ImageView) findViewById(R.id.bitmap);
//set view to bitmap image
bitmap.setImageBitmap(convertImageViewToBitmap(imgView));
}
//function to convert imageView to Bitmap
private Bitmap convertImageViewToBitmap(ImageView v){
Bitmap bm=((BitmapDrawable)v.getDrawable()).getBitmap();
return bm;
}
}