Показать графическое представление программно
Как я могу сделать ImageView появляются в середине экрана, когда пользователь нажимает кнопку? Я поместил изображение в папку res/drawable-folder.
Я пытался с кодом ниже, но я не знаю, как сделать ImageView появляются:
View v = new ImageView(getBaseContext());
ImageView image;
image = new ImageView(v.getContext());
image.setImageDrawable(v.getResources().getDrawable(R.drawable.gameover));
спасибо!
4 ответа:
- создать ImageView
- использовать OnClickListener в кнопку
- добавить ImageView к макету или установить видимость из ImageView в VISIBLE
//LinearLayOut Setup LinearLayout linearLayout= new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); //ImageView Setup ImageView imageView = new ImageView(this); //setting image resource imageView.setImageResource(R.drawable.play); //setting image position imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); //adding view to layout linearLayout.addView(imageView); //make visible to program setContentView(linearLayout);
int id = getResources().getIdentifier("gameover", "drawable", getPackageName()); ImageView imageView = new ImageView(this); LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); imageView.setLayoutParams(vp); imageView.setImageResource(id); someLinearLayout.addView(imageView);
Если вы добавляете в RelativeLayout, не забудьте установить позицию imageView. Например:
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(200, 200); lp.addRule(RelativeLayout.CENTER_IN_PARENT); // A position in layout. ImageView imageView = new ImageView(this); // initialize ImageView imageView.setLayoutParams(lp); // imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); imageView.setImageResource(R.drawable.photo); RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout); layout.addView(imageView);