Android 从Assets获取位图,然后将其加载到后台

Android 从Assets获取位图,然后将其加载到后台,android,background,bitmap,imageview,Android,Background,Bitmap,Imageview,大家好,过去我在这里得到了很多帮助,不知道你们能不能帮我做点什么 我想从资源中加载位图,然后将其添加到我在代码中创建的线性布局图像视图的背景中。我知道如何使用xml布局文件实现这一点,但在本例中,我需要在代码中实现这一点。到目前为止,我已经有了这个功能,它可以与.xml布局一起使用,但是当我尝试在代码中创建线性布局和ImageView时,图像没有显示出来。是否有我忽略或做错的事情。 这是我得到的密码 ImageView backgroundPainting = new ImageView(thi

大家好,过去我在这里得到了很多帮助,不知道你们能不能帮我做点什么

我想从资源中加载位图,然后将其添加到我在代码中创建的线性布局图像视图的背景中。我知道如何使用xml布局文件实现这一点,但在本例中,我需要在代码中实现这一点。到目前为止,我已经有了这个功能,它可以与.xml布局一起使用,但是当我尝试在代码中创建线性布局和ImageView时,图像没有显示出来。是否有我忽略或做错的事情。 这是我得到的密码

ImageView backgroundPainting = new ImageView(this);
    backgroundPainting.setAdjustViewBounds(true);


    LinearLayout rel = new LinearLayout(this);
//    RelativeLayout backgroundPaintingRL = (RelativeLayout) findViewById(R.id.RelativeLayout01);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.FILL_PARENT,
            LinearLayout.LayoutParams.FILL_PARENT);
    //lp.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate);
    //lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    rel.addView(backgroundPainting, lp);


    // backgroundPainting = (ImageView) findViewById(R.id.backgroundPainting2);
     getArtist = levelSelect.getArtistNameSelected();
     getLevel = level.getLevelSelected() ;

     String imagePath = "artists-images/"+getArtist + getLevel+".jpg";
     try { // Get reference to AssetManager
         AssetManager mngr = getAssets();
         // Create an input stream to read from the asset folder
            InputStream ins = mngr.open(imagePath);

            // Convert the input stream into a bitmap
            levelBitmap = BitmapFactory.decodeStream(ins);
            backgroundPainting.setImageBitmap(levelBitmap);
      } catch (final IOException e) {
            e.printStackTrace();
            Toast.makeText(levelView.this, "couldn't set image to background", Toast.LENGTH_LONG).show();
      }
请帮助我们


Pengume

您必须首先在xml文件中创建一个线性布局。 然后在代码中访问该布局

LinearLayout linearMain = (LinearLayout) findViewById(R.id.linearmainLayout);
然后,在背景绘画中设置位图图像后,在最后添加这两行,尝试下面的内容

rel.addView(backgroundPainting, lp);

linearMain.addView(rel);
rel.addView(backgroundPainting, lp); 
或者你可以这样试试

setContentView(rel); 
在背景画中设置位图图像后,最后写一行

rel.addView(backgroundPainting, lp);

linearMain.addView(rel);
rel.addView(backgroundPainting, lp); 

您必须将此视图rel添加到其父视图视图视图正在创建但未添加

只需使用
setContentView(rel)创建
线性布局后

您的toast是否会在运行时显示?如果没有,您是否正在调用
设置内容视图(rel)
?是,我的toast会显示。我有一个自定义的游戏面板,我正在将其设置为内容视图,但它是另一个类。请发布异常,然后您会在LogCat中找到它。所以您说我不能在代码中构建新的线性布局,然后在没有xml文件的情况下向其添加图像视图?