直接代码
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
public class ParceBean implements Parcelable{
private Bitmap dw;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Bitmap getDw() {
return dw;
}
public void setDw(Bitmap dw) {
this.dw = dw;
}
public static final Parcelable.Creator<ParceBean> CREATOR = new Creator<ParceBean>() {
public ParceBean createFromParcel(Parcel source) {
ParceBean pb = new ParceBean();
pb.name = source.readString();
pb.dw = Bitmap.CREATOR.createFromParcel(source);
return pb;
}
public ParceBean[] newArray(int size) {
return new ParceBean[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(name);
dw.writeToParcel(parcel, 0);
}
}
我在用的时候有个问题。
可能因为我的Bitmap数据过多了,当图片超过N张的时候
直接不返回activity而报
WARN/ActivityManager(1291): Launch timeout has expired, giving up wake lock!
WARN/ActivityManager(1291): Activity idle timeout for HistoryRecord{405688b0 }
只得不传Bitmap
分享到:
相关推荐
在Activity间传递Bitmap,有两种主要方式:Intent extras和使用Parcelable接口。由于Bitmap对象较大,直接通过Intent的extras传递可能会导致内存溢出,因为Intent的大小有限制。因此,更推荐使用Parcelable接口。 1...
* Parcelable 接口是 Android 平台下的序列化接口,通常跨进程传递的数据都要正确实现这个接口,比如 Intent,Bitmap 等。Parcelable 实现起来比 Serializable 复杂,但性能较好。使用场景:在内存中实现序列化,...
1. 使用Parcelable接口:Bitmap不是直接可序列化的,但我们可以实现Parcelable接口,将Bitmap转换为字节数组,然后在Intent中传递。接收Activity再将字节数组还原为Bitmap。这种方式比较高效,但需要自定义序列化和...
Bitmap是Android系统中用于表示图像数据的类,它包含了像素信息。在内存中,Bitmap占用的空间较大,因此在处理时需要注意内存管理和性能优化。 1. **在源Activity中传递Bitmap** 在源Activity(例如MainActivity)...
4. 使用第三方库:有些第三方库如Gson或Parcelable接口可以帮助处理Bitmap的序列化问题,它们提供了更高级的序列化机制,可以更方便地处理Bitmap对象。 总结来说,解决Android Bitmap序列化失败的方法主要是通过...
2. 将Bitmap转换为Base64字符串,然后通过Serializable或Parcelable传递,接收端再转回Bitmap。 3. 使用`Bitmap.createBitmap()` 创建一个新的Bitmap,然后通过Bitmap.copy()复制数据。 在实际开发中,根据数据量、...
1. **Bitmap的Parceable实现**:Bitmap对象本身并不支持Parceable,因为它是一个非Parcelable类。但我们可以将其转换为byte数组,然后通过Parcel传递。首先,创建一个自定义的Parcelable类,如`ParcelableBitmap`,...
在Android开发过程中,工具类(Util Classes)是程序员经常使用的代码模块,它们包含了各种实用功能,可以帮助开发者更高效地编写代码。"android工具类"这个主题涵盖了从UI操作到网络请求,再到数据处理等多个方面的...
Android提供了Bitmap类用于处理图像,但其内存管理需要特别注意,避免内存泄漏。 Glide和Picasso是流行的图片加载库,它们能自动优化内存使用和网络请求,同时支持图片的裁剪、缩放和圆角处理等功能。 9. Toast与...
前言 在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据...使用Intent传送数据时,可能会出现异常 在Intent中传入一个Parcelable对象;例如传入一个bitmap对象。 代
- 使用Parcelable接口序列化Bitmap,减少内存占用。 - 使用流式传输,将Bitmap转化为二进制流进行传递,降低内存压力。 - 使用压缩算法,如JPEG或PNG,压缩图像后再进行传输,以减小数据量。 在处理过程中,还要...
这种方法是直接将Bitmap对象作为Parcelable附加到Intent上进行传递。 1. **发送图片**: 创建一个新的Intent,然后调用`setDrawingCacheEnabled()`方法启用ImageView的绘图缓存,接着使用`getDrawingCache()`获取...
- 当数据量较大时,优先考虑使用Parcelable,因为它比Serializable效率高。 - 如果传递的数据是敏感信息,需要考虑安全问题,避免数据泄露。 6. **实践案例** 一个常见的应用场景是,从一个Activity启动另一个...
同时,遵循最佳实践,如使用Parcelable而非Serializable进行数据序列化,以及及时关闭Cursor、数据库连接和网络连接等,都有助于优化内存使用。 性能调优还包括避免一次性加载过多数据,使用列表视图(ListView)和...
数据类型可以是基本类型(如int、String)、Parcelable对象(如Bitmap、Parcelable数组)或Serializable对象。例如,传递一个字符串: ```java intent.putExtra("key", "value"); ``` 在目标Activity中,使用`...
开发者需要理解如何创建和应用矩阵来改变Bitmap对象的显示效果。 6. **自定义View**:可能包含自定义的View或ViewGroup类,如CustomImageView,以便添加涂鸦功能。自定义View允许开发者覆盖onTouchEvent()方法,...
1. 智能使用Bitmap:Bitmap对象占用了大量内存,因此需要合理加载和解码。使用inSampleSize参数减小图片大小,利用LruCache或 Fresco、Glide等库进行内存缓存管理。 2. 尽量避免大对象:大对象可能导致内存分配失败...
10. **代码和设计优化**:良好的编程习惯和设计模式也能对内存优化起到积极作用,如遵循单一职责原则,避免过深的层级结构,以及使用Parcelable代替Serializable等。 通过深入学习《Android内存优化》PDF,开发者...
可以使用Parcelable接口来序列化和反序列化Bitmap数据。 - 当应用回到前台或布局重建时,恢复之前保存的状态。 6. **交互反馈**: - 添加声音反馈,当用户刮开一部分时播放刮擦声效,增加沉浸感。 - 可以通过...