其他分享
首页 > 其他分享> > 在android中保存/恢复自定义视图的状态

在android中保存/恢复自定义视图的状态

作者:互联网

我已经为EditText实现了自定义视图,如下图所示:

Custom view for edittext

现在,这个自定义视图包括翻转,编辑,旋转,拖动和放大的功能.放下并调整大小.我在资源管理器中以位图格式保存此自定义视图.问题是我想编辑它,我想恢复自定义视图的细节,并检索CustomView的每个细节,甚至是它的位置.那么,有什么办法可以实现它吗?

解决方法:

您需要存储所有编辑内容:

旋转:为此,您必须保持从初始值0到下一个旋转值的角度.

翻转:为此创建一个标志,并为正面和背面设置True,false值.

文字:你知道怎么把文字从EditText中取出来.

父视图中的布局位置:

用于计算父视图中的布局位置使用下面的方法并为此创建四个int变量,

左=

顶部=

对=

底部=

高度=

宽度=

private Map<String,Integer>  getPositionOnScreen(View view){
        Map<String,Integer> map = new HashMap<String,Integer>();
        View rootLayout = view.getRootView().findViewById(android.R.id.content);

        int[] viewLocation = new int[2];
        view.getLocationOnScreen(viewLocation);

        int[] rootLocation = new int[2];
        rootLayout.getLocationOnScreen(rootLocation);

        int relativeLeft = viewLocation[0] - rootLocation[0];
        int relativeTop  = viewLocation[1] - rootLocation[1];

        int height = viewLocation[0] - rootLocation[0];
        int width  = viewLocation[1] - rootLocation[1];


        map.put("left",relativeLeft);
        map.put("top",relativeTop);
        map.put("height",view.getLayoutParams().height);
        map.put("width",view.getLayoutParams().width);
        return map;
    }

上面的方法返回左视图和顶视图的位置,但您需要从左,顶部和高度,宽度计算右下角位置.

创建一个Pojo以将所有这些参数保存在一起,并将此pojo存储到SharedPreferences或Data Base或Application Context中.

标签:android,android-studio,view,android-custom-view,custom-view
来源: https://codeday.me/bug/20190608/1197806.html