Как программно изменить размер ImageView в Android? - PullRequest
0 голосов
/ 05 января 2012

Возьмите следующий код:

ImageView imageView = new ImageView(activity);
imageView.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

Запуск этого приложения приводит к сбою моего приложения.Я не могу на всю жизнь понять, как установить высоту / вес для ImageView, созданного в коде.

01-05 14:46:34.593: E/AndroidRuntime(12038): FATAL EXCEPTION: main
01-05 14:46:34.593: E/AndroidRuntime(12038): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.Gallery.setUpChild(Gallery.java:772)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.Gallery.makeAndAddView(Gallery.java:741)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.Gallery.layout(Gallery.java:625)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.Gallery.onLayout(Gallery.java:339)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.ScrollView.onLayout(ScrollView.java:1296)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.View.layout(View.java:7175)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.os.Looper.loop(Looper.java:130)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at android.app.ActivityThread.main(ActivityThread.java:3683)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at java.lang.reflect.Method.invokeNative(Native Method)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at java.lang.reflect.Method.invoke(Method.java:507)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-05 14:46:34.593: E/AndroidRuntime(12038):    at dalvik.system.NativeStart.main(Native Method)

Для записи создаваемый мной вид изображения создается внутри getView метод класса BaseAdapter, который затем используется галереей.

1 Ответ

2 голосов
/ 05 января 2012

Я думаю, что у вас есть ImageView в LinearLayout, но вы передаете LayoutParams для RelativeLayout.Пожалуйста, попробуйте это.

ImageView imageView = new ImageView(activity);
imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...