Я создаю ImageView программно, и я хочу установить layout_centerVertical = "true" и android: layout_centerHorizontal = "true".Как создать новый объект и установить layout_centerVertical в true программно?
Я попробовал этот код:
ImageView myImage = new ImageView(this);
Resources res = getApplicationContext().getResources();
myImage.setImageResource(res.getIdentifier((card.getColor() + "_" + card.getFigure()).toLowerCase(), "drawable", this.getPackageName()));
myImage.setTag(IMAGEVIEW_TAG);
myImage.setOnTouchListener(new MyTouchListener());
RelativeLayout layout = (RelativeLayout) findViewById(R.id.toplinear);
layout.addView(myImage);
View positiveButton = myImage.getRootView();
RelativeLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams)positiveButton.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
positiveButton.setLayoutParams(layoutParams);
Однако LogCat бросает ошибку:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout$LayoutParams.addRule(int, int)' on a null object reference at pl.ds13ds14.ucp.CardsActivity.AddCard(CardsActivity.java:55)
Строка 55 содержит:
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
так что непонятно? описание ошибки сообщает все это ... – pskink
Почему это null? Как правильно установить эти значения? – Defozo
«Этот метод может возвращать значение null, если этот вид не привязан к родительской группе ViewGroup или setLayoutParams (android.view.ViewGroup.LayoutParams) не был успешно вызван. Когда представление присоединено к родительской ViewGroup, этот метод не должен возвращать значение null. " – pskink