在android中从getDrawingCache()获取空位图

在android中从getDrawingCache()获取空位图,android,android-layout,Android,Android Layout,这是我的密码。我得到的是空值。从早上开始我就一直在寻找解决方案,我使用xml文件创建了布局,然后我得到了视图的位图,但我希望它是动态的,我已经通过编程创建了布局请参见下面的代码。 我的视图看起来不错,但仍然获取getDrawingCache()空位图 LinearLayout mainlayout = new LinearLayout(getApplicationContext()); mainlayout.setOrientation(LinearLayout.VERTICA

这是我的密码。我得到的是空值。从早上开始我就一直在寻找解决方案,我使用xml文件创建了布局,然后我得到了视图的位图,但我希望它是动态的,
我已经通过编程创建了布局
请参见下面的代码。 我的视图看起来不错,但仍然
获取getDrawingCache()空位图

 LinearLayout mainlayout = new LinearLayout(getApplicationContext());
        mainlayout.setOrientation(LinearLayout.VERTICAL);
        mainlayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
         ImageView top= new ImageView(getApplicationContext());
         ImageView bot= new ImageView(getApplicationContext());
           Bitmap bottomImage = BitmapFactory.decodeResource(getResources(), R.drawable.collagebot);
            Bitmap topImage =BitmapFactory.decodeResource(getResources(), R.drawable.collagetop);
            top.setImageBitmap(topImage);
            bot.setImageBitmap(bottomImage);

            LinearLayout midLayout = new LinearLayout(getApplicationContext());
                        midLayout.setOrientation(LinearLayout.HORIZONTAL);
                        midLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
                                Bitmap midlaybg =BitmapFactory.decodeResource(getResources(), R.drawable.bg);
                                Drawable middrow = new BitmapDrawable(getResources(),midlaybg);
                        midLayout.setBackground(middrow);

                    ImageView right= new ImageView(getApplicationContext());
                    ImageView left= new ImageView(getApplicationContext());
                    Bitmap rightImage = BitmapFactory.decodeResource(getResources(), R.drawable.fb);
                    Bitmap leftImage =BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
                    Drawable rightdrow = new BitmapDrawable(getResources(),rightImage);
                    Drawable leftdrow = new BitmapDrawable(getResources(),leftImage);
                    right.setBackground(rightdrow);
                    left.setBackground(leftdrow);
                    right.setLayoutParams(new LayoutParams(150,150));

                    left.setLayoutParams(new LayoutParams(150,150));
                    left.setLayoutParams(new LinearLayout.LayoutParams(150, 150, 10));
                    midLayout.setPadding(50, 0, 0, 0);
                    midLayout.addView(right);
                    midLayout.addView(left);

                    mainlayout.addView(top);
                    mainlayout.addView(midLayout);
                    mainlayout.addView(bot);

                    Bitmap mainlaybg =BitmapFactory.decodeResource(getResources(), R.drawable.bg);
                    Drawable maindrow = new BitmapDrawable(getResources(),mainlaybg);
                    mainlayout.setBackground(maindrow);

                     mainlayout.setDrawingCacheEnabled(true);
                        mainlayout.buildDrawingCache();

                 // setContentView(mainlayout); // i dont want to setContentView


                    Log.e("ceche",""+mainlayout.getDrawingCache());// here i am getting null bitmap of mainlayout view
                     Bitmap imgb=mainlayout.getDrawingCache();
mainlayout.measure(MeasureSpec.makeMeasureSpec(
            mainlayout.getLayoutParams().width, MeasureSpec.EXACTLY),
            MeasureSpec.makeMeasureSpec(
                    mainlayout.getLayoutParams().height,
                    MeasureSpec.EXACTLY));
    mainlayout.layout(0, 0, mainlayout.getMeasuredWidth(),
            mainlayout.getMeasuredHeight());

    mainlayout.setDrawingCacheEnabled(true);
    final Bitmap bitmap_ = Bitmap
            .createBitmap(mainlayout.getDrawingCache());
    mainlayout.setDrawingCacheEnabled(true);