the*_*box 6 java android android-bitmap
我试图以编程方式创建一个图层列表与调整大小的位图作为项目.从我所看到的BitmapDrawable已被弃用.新构造函数需要以下参数 - public BitmapDrawable(Resources res,Bitmap bitmap).我从下面的一个非常基本的例子开始.
BitmapDrawable background = new BitmapDrawable();
background.setBounds(10,10,10,10);
Drawable[] layers = {background};
LayerDrawable splash_test = new LayerDrawable(layers);
splash_test.setLayerInset(0, 0, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我如何正确使用新的BitmapDrawable构造函数以及如何将可绘制资源链接到背景对象.
小智 14
您提到要从几个位图创建一个图层列表.你拥有的内容在很大程度上是正确的,你需要做的就是获取每个位图对象并将其转换为BitmapDrawable.为此,您可以使用:
BitmapDrawable layer1 = new BitmapDrawable(context.getResources(), bitmap1);
Run Code Online (Sandbox Code Playgroud)
如果你是一个活动,当你这样做,你甚至不需要调用context.getResources(),只需getResources().
然后,您将获取所有图层并创建LayerDrawable,就像您现在一样:
Drawable[] layers = {layer1, layer2, layer3};
LayerDrawable splash_test = new LayerDrawable(layers);
Run Code Online (Sandbox Code Playgroud)
(请注意,layer3将位于layer2之上,而layer2将位于layer1之上).
获得LayerDrawable后,您可以使用view.setBackgoundDrawable(drawable)(在API 16及更高版本上)或view.setBackground(drawable)(在API 16之前)在视图的背景上设置它.本文将介绍如何检查设备版本,并在支持前16设备时调用相应的方法.
如果您想要相对于彼此定位图层,那么您还需要setLayerInset()在代码中使用,但我建议您在获取图层列表后再尝试使用.
| 归档时间: |
|
| 查看次数: |
5423 次 |
| 最近记录: |