2016-03-26 13 views
0

ImageViewでAndroidアプリをプログラミングしていて、幅と高さを動的に変更しようとすると、アプリは停止します(中止)。私は次のコマンドを使用しています:ImageView android abort program

RelativeLayout.LayoutParams icon_horizontal = new RelativeLayout.LayoutParams(50, 50); 
mec21h_icon2.setLayoutParams(icon_horizontal); 

レイアウトは相対的なので、何が間違っていますか?

答えて

0

エラーが何であるかを理解するには、スタックトレースが必要です。これがないと 、私は推測することができます。

  • を間違った親のレイアウトを使用しようとしているが
  • ...
0

私はあなたが推測ImageViewのrefがnullである

  • paramsは(すでに表示されている)画像の大きさを変更しようとしている場合は、最初にrequestLayout()メソッドを呼び出す必要があります。 すなわち

     mImageView.requestLayout(); 
    
  • +0

    問題なく動作します。ありがとうございました。 –

    0

    ボタンをクリックしてサイズを変更した画像をクリックします。

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/rel" 
        tools:context="com.testingpp.scannerbarcode.MainActivity"> 
    
    
        <ImageView 
         android:id="@+id/imageview" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:onClick="button_one" 
         android:src="@drawable/btn_back" 
         /> 
    </FrameLayout> 
    

    MainActivity.java

    public class MainActivity extends AppCompatActivity { 
    
        FrameLayout layout; 
        ImageView imageView; 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
    
         setContentView(R.layout.activity_main); 
    
        imageView = (ImageView) findViewById(R.id.imageview); 
         layout = (FrameLayout) findViewById(R.id.rel); 
    
        } 
    
        public void button_one(View view) 
        { 
         FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(50,50); 
         layout.setLayoutParams(params); 
        } 
    
        } 
    

    あなたがFramentsを使用している場合は、XMLののonClickを使用しないでください。 JavaのonClickListenerを使用します。