2017-01-31 2 views
1

У меня есть LinearLayout, который я добавляю, когда я нажимаю кнопку, я пытался использовать LayoutParams, чтобы изменить ширину и высоту, потому что не подходит, как и должно быть, и я всегда получал нулевая ссылка, проблема в том, что я не могу ссылаться, потому что не является статическим ImageView.Как изменить размер изображения, добавленный программным способом

Это, как я добавлять изображения внутри LinearLayout:

public void AddNewImages(Context context,Bitmap bitmap){ 
    ImageView img = new ImageView(context); 
    img.setScaleType(ImageView.ScaleType.FIT_XY); 
    img.setImageBitmap(bitmap); 
    linearImages.addView(img); 
    bitmapArray.add(bitmap); 
    indexTags++; 
} 

XML:

<LinearLayout 
    android:orientation="vertical" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <HorizontalScrollView 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
     <LinearLayout 
      android:orientation="horizontal" 
      android:id="@+id/linearImages" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
      <Button 
       android:layout_gravity="center" 
       android:id="@+id/add_btn" 
       android:text="Add" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </HorizontalScrollView> 
+0

получить изображение из линейкиImages child – Pavya

ответ

2

Сначала вы должны найти ImageView, которые вы добавили в LinearLayout и установить размер т.е.

for(int i=0;i<linearImages.getChildCount();i++) 
{ 
    ImageView image=(ImageView)linearImages.getChildAt(i); 
    image.getLayoutParams().height=100; 
    image.getLayoutParams().width=100; 
} 
+0

где я должен положить это? сразу после 'indexTags ++;'? Я пробовал и мое приложение аварии без каких-либо ошибок –

+0

это работает, спасибо! –

0

, а затем установить LayoutParam.

0

Вы создаете ImageView динамически, так что вы должны сначала установить layoutParameters для него, а затем вы можете установить высоту и ширина изображения. Обратитесь к этому вопросу NullPointerException while setting LayoutParams вопрос

Смежные вопросы