我想在我的新图库中动态添加和降低图像。我将图像转换为字节数组(BitMap)并发送到另一个活动,它应该是我的新图库。当我使用一个图像时,这项工作很好。但当我转换为byteArray另一个图像并发送到我的新图库中的另一个活动时,第二个图像覆盖第一个图像。如何添加和删除两张图片和更多不同的图片。图片尺寸很小))))感谢很多功能响应。
有我发送照片的代码
private void saveFirstSelectedImageIdPreferences(String key, int position) {
firstSelectionPositionId = position;
sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = sp.edit();
edit.putInt(key, firstSelectionPositionId);
Log.d(MY_LOG,"///// saving first selected image id/////////////////////"
+ firstSelectionPositionId);
edit.commit();
//decode picture into byte array
Bitmap btm = BitmapFactory.decodeResource(getResources(), R.drawable.sport_0);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
btm.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte [] byteArray = stream.toByteArray();
//sending picture into favorite activity
Intent intent = new Intent(this,Favorites.class);
intent.putExtra("sport_0", byteArray);
startActivity(intent);
Log.d(MY_LOG,"convert first item to bytes");
Toast.makeText(this, "Picture add to favorite", Toast.LENGTH_SHORT).show();
}
在这行代码中 byte [] byteArray = {(byte)R.drawable.sport_0} 我只能添加一个图像,就是这样。如何按下按钮点击添加按钮unlick删除图片录制图片。也许你知道解决这个问题的更好方法。请帮我解决这个问题。再次感谢你的回答。
最好的考虑Taras Matolinets
并且有代码活动,我想发送图片和我的新图库
final String MY_LOG = "mylog";
Gallery gallery;
ImageView imageView;
Bitmap btm;
byte[] byteArray = {(byte)R.drawable.sport_0};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favorite);
imageView = (ImageView) findViewById(R.id.ImageFavoriteView);
gallery = (Gallery) findViewById(R.id.FavoriteGallery);
// creating AddImgadapter
gallery.setAdapter(new AddImgAdapter(this));
// getting gallery item click listener
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> perent, View view,
int position, long id) {
imageView.setImageBitmap(btm);
Log.d(MY_LOG, "img Id"+position);
}
});
//finish activity
// finish();
}
// new our adapter
public class AddImgAdapter extends BaseAdapter {
int GalItemBg;
Context count;
public AddImgAdapter(Context c) {
count = c;
// taking Gallery attributes and resource id theme
TypedArray typeArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typeArray.getResourceId(
R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typeArray.recycle();
}
// amount of element
@Override
public int getCount() {
return byteArray.length;
}
// position of element
@Override
public Object getItem(int position) {
return position;
}
// id of element
@Override
public long getItemId(int position) {
return position;
}
//setting view image resourses params position and backgroud resourses
@Override
public View getView(int position, View converView, ViewGroup parent) {
if(Sport.firstSelectionPositionId == Sport.selectedPosition){
Bundle extrasFirst = getIntent().getExtras();
byteArray = extrasFirst.getByteArray("sport_0");
Log.d(MY_LOG, "covert bytes to first item");
btm = BitmapFactory.decodeByteArray(byteArray, 0,
byteArray.length);
imageView.setImageBitmap(btm);
}else if(Sport.secoundSelectedPositionId == Sport.selectedPosition){
Bundle extrasSecond = getIntent().getExtras();
byteArray = extrasSecond.getByteArray("sport_1");
Log.d(MY_LOG, "covert bytes to second item");
btm = BitmapFactory.decodeByteArray(byteArray, 0,
byteArray.length);
imageView.setImageBitmap(btm);
}
ImageView newImageView = new ImageView(count);
newImageView.setImageBitmap(btm);
newImageView.setLayoutParams(new Gallery.LayoutParams(130, 100));
newImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
newImageView.setBackgroundResource(GalItemBg);
return newImageView;
}
}