您可以使用SharedPreferences来保存和恢复自定义视图的实例。下面是一个代码示例:
public class CustomView extends View {
private static final String PREF_NAME = "CustomViewPrefs";
private static final String KEY_X = "x";
private static final String KEY_Y = "y";
private float x;
private float y;
public CustomView(Context context) {
super(context);
init();
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
SharedPreferences prefs = getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
x = prefs.getFloat(KEY_X, 0);
y = prefs.getFloat(KEY_Y, 0);
}
@Override
protected void onDraw(Canvas canvas) {
// 绘制自定义视图的逻辑代码
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
// 当视图大小发生变化时保存坐标
saveCoordinates();
}
private void saveCoordinates() {
SharedPreferences prefs = getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putFloat(KEY_X, x);
editor.putFloat(KEY_Y, y);
editor.apply();
}
}
在这个代码示例中,CustomView
是一个自定义视图,并且使用SharedPreferences
保存和恢复自定义视图的坐标(x和y)。在构造函数中,我们调用init()
方法来恢复之前保存的坐标。在onSizeChanged()
方法中,我们调用saveCoordinates()
方法来保存当前的坐标。
请注意,为了避免命名冲突,我们使用了常量PREF_NAME
、KEY_X
和KEY_Y
作为SharedPreferences的键。您可以根据需要进行修改。
希望这个示例能够帮助您保存和恢复自定义视图的实例。
下一篇:保存和恢复自动求导状态