setImageBitmap获取语法错误

时间:2015-02-01 12:40:52

标签: android bitmap

我正在尝试使用Bitmap并将其显示在ImageView中。

ImageView iv = new ImageView(this);

Bitmap bMap = BitmapFactory.decodeFile("/res/drawable/" + imageFileName);
iv.setImageBitmap(bMap);

这是我的代码。我创建了一个ImageView和一个Bitmap。我想在我的ImageView中显示我的Bitmap。但我总是在iv.setImageBitmap(bMap);声明

上得到这两个错误
Syntax error on token "bMap", VariableDeclaratorId expected after this token    
Syntax error on token(s), misplaced construct(s)    

有没有人知道为什么会发生这种情况以及我必须改变什么?

1 个答案:

答案 0 :(得分:0)

在OP pastebin code中,我找到了以下代码段:

String imageFileName =getIntent().getStringExtra("imageFileName");
//String bildquelle = "R.drawable." + imageFileName;

public class ImageChange extends Activity {          
  ImageView iv = new ImageView(this);
  String bildquelle = "R.drawable." + imageFileName;
  int id = getResources().getIdentifier(bildquelle, "drawable", getPackageName());

  Bitmap bMap = BitmapFactory.decodeResource(getResources(), id);
  //Bitmap bMap = BitmapFactory.decodeFile("/res/drawable/" + imageFileName);
  iv.setImageBitmap(bMap);
}

这有几个问题,包括:

  1. 代码不在方法体内。
  2. 代码是Activity子类。
  3. 代码不正确地调用getResources().getIdentifier(...)
  4. 我建议使用以下代码进行剩余的活动,而不是上面的代码:

    public class BildAnzeigen extends ActionBarActivity {
    
      ImageView iv;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bild_anzeigen);
        iv = (ImageView) findViewById(R.id.my_image_view); // replace the id with the one from layout definition
    
        handleIntent(getIntent());
      }
    
      private void handleIntent(Intent intent) {
        String imageFileName = intent.getStringExtra("imageFileName");
        int id = getResources().getIdentifier(imageFileName, "drawable", null);
        Bitmap bMap = BitmapFactory.decodeResource(getResources(), id);
        iv.setImageBitmap(bMap);
      }
    }
    

    注意:如果图像未在apk中编译,则无法使用。在建造之后,没有办法向drawables添加任何东西。它不会那样工作。