0

Я пытаюсь раздуть фотографию, которую я взял с помощью камеры на ImageView, но получаю NPE.изображение не будет отображаться на завышенном изображении.

public void onDescriptionClick(){ 

     RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.camap); 
     View view = getLayoutInflater().inflate(R.layout.pic_check, mainLayout, false); 
     RelativeLayout inflatedLayout = (RelativeLayout) findViewById(R.id.inflated); 
     ImageView iv= (ImageView)findViewById(R.id.imgv); 
     mainLayout.addView(inflatedLayout); 

     inflatedLayout.addView(iv); 

     iv.setImageBitmap(bitmap);//here i get NPE 
} 

помощь будет оценена

+0

Ваш растровый является недействительным? –

ответ

0

У вас есть NPE потому что вы звоните findViewById(R.id.imgv) и ImageView еще не добавил в свой «деятельности макет», вы должны вызвать findViewById от «новый завышенный», иначе он вернет нулевой объект.

Ответы muruga5000 верны, но код немного грязный. Вот мое предложение:

public void onDescriptionClick(){ 

    RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.camap); 

    View inflatedView = getLayoutInflater().inflate(R.layout.pic_check, mainLayout, false); 

    ImageView iv= (ImageView) inflatedView.findViewById(R.id.imgv); 

    iv.setImageBitmap(bitmap); 

    mainLayout.addView(inflatedView); 

} 
+1

tnx guys !! работает как шарм. –

1
public void onDescriptionClick(){ 

    RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.camap); 
    View view = getLayoutInflater().inflate(R.layout.pic_check, mainLayout, false); 
    RelativeLayout inflatedLayout = (RelativeLayout) view.findViewById(R.id.inflated); 
    ImageView iv= (ImageView) view.findViewById(R.id.imgv); 

    mainLayout.addView(inflatedLayout); 

    inflatedLayout.addView(iv); 

    iv.setImageBitmap(bitmap); 
} 
1

Ваш родственник расположение и ImageView находится внутри вида Просто сделай это ...

 public void onDescriptionClick(){ 

        RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.camap); 
        View view = getLayoutInflater().inflate(R.layout.pic_check, mainLayout, false); 
        RelativeLayout inflatedLayout = (RelativeLayout) view.findViewById(R.id.inflated); 
        ImageView iv= (ImageView)view.findViewById(R.id.imgv);mainLayout.addView(inflatedLayout); 

        inflatedLayout.addView(iv); 


      iv.setImageBitmap(bitmap); 
mainLayout.addView(inflatedLayout); 
} 
Смежные вопросы