2016-03-14 2 views
1

Я хочу поместить изображение в центр по вертикали из FrameLayout. Но я не могу этого сделать. Я пробовал FrameLayout.LayoutParams, но у него нет метода .addRule().Как я могу программно поместить изображение в центре изображения в FrameLayout?

public class P023Deneme extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    FrameLayout frameLayout=new FrameLayout(this); 
    ImageView imageViewBackgroud=new ImageView(this); 
    imageViewBackgroud.setImageResource(R.drawable.sample_6); 

    ImageView imageViewLeftArrow=new ImageView(this); 
    imageViewLeftArrow.setImageResource(R.drawable.slidersolok_logo); 

    frameLayout.addView(imageViewBackgroud); 
    frameLayout.addView(imageViewLeftArrow,50,50); 
    setContentView(frameLayout); 


} 

}

ответ

0

ли это в XML, а не в коде, это легче

<?xml version="1.0" encoding="utf-8"?> 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:src="@drawable/background_drawable"/> 

    <ImageView 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:src="@drawable/arrow_drawable"/> 
</FrameLayout> 

Если вы все еще хотите сделать это программно, то:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    FrameLayout frameLayout=new FrameLayout(this); 
    ImageView imageViewBackgroud=new ImageView(this); 
    imageViewBackgroud.setImageResource(R.drawable.background); 

    ImageView imageViewLeftArrow=new ImageView(this); 
    imageViewLeftArrow.setImageResource(R.drawable.arrow); 

    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 
      FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL); 
    frameLayout.addView(imageViewBackgroud); 
    frameLayout.addView(imageViewLeftArrow, layoutParams); 
    setContentView(frameLayout); 
} 
Смежные вопросы