2017-02-26 5 views
-1

メインアクティビティに画像をプログラムで表示しようとしています。前にContentFragmentでこれを成功させましたが、何らかの理由でビルドが成功した後にイメージが存在しません。メインアクティビティに画像を表示する問題

私のサンプルコード:このビューに画像を追加したい場合は、プログラムの活動のルートを取得しようとsetContentView(R.layout.activity_main);

を:活動の

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View myView = inflater.inflate(R.layout.activity_main, null); 
    ViewGroup mainLayout = (RelativeLayout) myView; 

    ImageView wView = new ImageView(this); 
    Drawable W = ContextCompat.getDrawable(this, R.drawable.w); 

    RelativeLayout.LayoutParams imageParam = 
      new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
        RelativeLayout.LayoutParams.WRAP_CONTENT); 

    wView.setImageDrawable(W);       
    imageParam.setMargins(100, 100, 0, 0); 
    mainLayout.addView(wView); 
    wView.setLayoutParams(imageParam); 

答えて

0

我々は呼び出すことにより、活動ののonCreateメソッドでビューを膨らませます

ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0); 

をしてから、このビューに自分の画像を追加します:最初の表示

あなたは、その高さ幅を設定する必要があります
public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0); 

     ImageView wView = new ImageView(this); 
     Drawable W = ContextCompat.getDrawable(this, R.drawable.w); 

     RelativeLayout.LayoutParams imageParam = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     imageParam.setMargins(100, 100, 0, 0); 
     wView.setLayoutParams(imageParam); 
     wView.setImageDrawable(W); 
     viewGroup.addView(wView); 
    } 
} 
+0

どうもありがとう、これはまさに私がそれを望んでどのように働きました。また、RelativeLayoutの初期化を積み重ねる方法も気に入っています。それはもっときれいに見えます。 –

1

ImageView wView = new ImageView(this); 
((ViewGroup.LayoutParams)(wView.getLayoutParams())).width = 200; 
((ViewGroup.LayoutParams)(wView.getLayoutParams())).height = 200; 
+1

私の質問に返信してくれてありがとうが、画像が表示されなかったのは恐れている。 CookieMonsterの実装作業ですが、後で高さと幅のパラメータを調整する必要があるため、コードを共有してうれしいです。 –

関連する問題