zoukankan      html  css  js  c++  java
  • 安卓学习42

    今天学习了安卓的一些知识其中主要的是:

    Android Drawable叠加处理方法大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理

    呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表

    示:

    Bitmap bm = BitmapFactory.dec odeResource(getResources(),R.drawable.cwj);

    232. Drawable[] array = new Drawable[3]; array[0] = new PaintDra wable(Color.BLACK); //黑色

    233. array[1] = new PaintDrawable(Color.WHITE); //白色

    234. array[2] = new BitmapDrawable(bm); //位图资源

    235. LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组

    236. ld.setLayerInset(1, 1, 1, 1, 1); //第一个参数1代表数组的第二个元素,为白色

    237. ld.setLayerInset(2, 2, 2, 2, 2); //第一个参数2代表数组的第三个元素,为位图资源

    238. mImageView.setImageDrawable(ld);

    239. 上面的方法中LayerDrawable是关键,Android开发网提示setLayerInset方法原型为

    public void setLayerInset (int index, int l, int t, int r, int b) 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom。对于简单的图片合成我们可以将第一和第二层的PaintDrawable换成

    BitmapDrawable即可实现简单的图片合成。

    240. 22. onRetainNonConfigurationInstance和

    getLastNonConfigurationInstance

    241.

    很多网友可能知道Android横竖屏切换时会触发onSaveInstanceState,而还原时会产生onRestoreInstanceState,但是Android的Activity类还有一个方法名为

    onRetainNonConfigurationInstance和

    getLastNonConfigurationInstance这两个方法。我们可以通

    过 onRetainNonConfigurationInstance 代替 onSaveInstanceState

    @Override

    244. public Object onRetainNonConfigurationInstance()

    245. {

    246. //这里需要保存的内容,在切换时不是bundle了,我们可以直接通过Object来代替

    247. return obj;

    248. } 在恢复窗口时,我们可以不使用 onRestoreInstanceState,而代替的是 getLastNonConfigurationInstance 方法。我们可以直接在onCreate 中使用,比如 Object obj = getLastNonConfigurationInstance(); 最终obj的内容就是上次切换时的内容。这里Android123提醒大家,每次Activity横竖屏切换时onCreate方法都会被触发。

  • 相关阅读:
    10种 分布式ID生成方式(新增MongoDB的ObjectId)
    Spring核心接口Ordered的实现及应用 (动态切换数据源时候用到)
    No module named 'Crypto' 解决方案
    使用Anaconda管理多个版本的Python环境
    深入浅出Blazor webassembly 之API服务端保护
    [转载]HTTPS 是如何保护你的安全的
    [转载]api接口token的生成和应用
    深入浅出Blazor webassembly之HttpClient使用
    深入浅出Blazor webassembly之自定义Input组件
    深入浅出Blazor webassembly之EditForm
  • 原文地址:https://www.cnblogs.com/092e/p/14916675.html
Copyright © 2011-2022 走看看