如何从 android 中的相对布局获取可绘制对象

How to get the drawable from relative layout in android

我做了什么: 我已将位图设置为如下所示的相对布局

RelativeLayout root;
root= (RelativeLayout) itemView.findViewById(R.id.root);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap preview_bitmap = BitmapFactory.decodeResource(context.getResources(),godImages[position], options);
Drawable drawable = new BitmapDrawable(context.getResources(),preview_bitmap);
root.setBackgroundDrawable(drawable);

我想做什么: 我试图再次从设置的相对布局中获取位图 这样我就可以传递给另一个 activity。

Note: i am aware of using the intents to padd data between activities only i want to know how to get the bitmap

关于如何实现这一目标的任何想法?

有几种方法可以做到这一点:

1.尝试:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.rel);
layout.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(layout.getDrawingCache());
layout.setDrawingCacheEnabled(false);

2. 或者试试:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.rel);
Bitmap b = Bitmap.createBitmap( layout.getLayoutParams().width, layout.getLayoutParams().height, Bitmap.Config.ARGB_8888);                
Canvas c = new Canvas(b);
layout.layout(layout.getLeft(), layout.getTop(), layout.getRight(), layout.getBottom());
layout.draw(c);

获取当前ImageView

1. 要获取当前位置,请使用

ViewPager viewPager = getView().findViewById(r.id.pager);
int position = viewPager.getCurrentItem();

2. 要获取当前 View,请使用

View currentView = viewPager.getChildAt(int position);

这个currentView是当前FragmentonCreateView()方法创建的View

3. 要获得 ImageView,请使用

ImageView currentImage = (ImageView)currentView.findViewById(R.id.image);

其中 R.id.image 是您想要从当前 Fragment.

中得到的 ImageView 对象