Я хочу создать ImageView динамически и поместить его в центр центра. Я попытался сделать это в xml, и я смог. Я пытался преобразовать одну и ту же вещь в код, но imageView всегда появляется в левом верхнем углу экрана. Может кто-нибудь указать, что это за ошибка? Я все еще новичок в Android и нахожу свой путь. Могут быть и промахи.Невозможно центрировать линейную компоновку и, следовательно, изображение Посмотреть внутри
Благодаря
XML-файл
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical">
<ImageView
android:id="@+id/myimg"
android:layout_width="100dip"
android:layout_height="100dip"
android:scaleType="fitXY"
android:layout_gravity="center_horizontal"
android:background="@drawable/exmp"
/>
</LinearLayout>
Код
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
Resources res = getResources();
String pluginPackageName = this.getApplicationContext().getPackageName();
int anim = res.getIdentifier("anim_android", "anim",pluginPackageName);
int transparent_style = res.getIdentifier("TransparentProgressDialog", "style", pluginPackageName);
int drawable_spinner = res.getIdentifier("exmp", "drawable", pluginPackageName);
LinearLayout layout = new LinearLayout(getApplicationContext());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(layoutParams);
layout.setGravity(Gravity.CENTER);
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams imageViewParams = new LinearLayout.LayoutParams((100),(100));
imageViewParams.gravity = Gravity.CENTER_HORIZONTAL;
ImageView iv = new ImageView(getApplicationContext());
iv.setLayoutParams(imageViewParams);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setImageResource(drawable_spinner);
layout.addView(iv, imageViewParams);
addContentView(layout, imageViewParams);
}
Вы пробовали 'layout.setGravity (Gravity.CENTER_VERTICAL);'? Это единственное различие, которое я вижу ... (и вам все еще нужны правильные параметры макета для 'addContentView()') – Karakuri
Yup. Я тоже это пробовал, но я не получил вторую часть вашего комментария. Являются ли параметры макета неправильными? – Aadithya
Вы вызываете 'addContentView (layout, imageViewParams)' вместо 'addContentView (layout, layoutParams)' – Karakuri