【 Android 】動態改變ImageView的大小

承襲上一篇 imageview的 作法,新增一個button 和 seekbar去測試是否可以動態改變imageview的大小;

xml:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"   //設置imageview的寬為同元件
    android:layout_height="wrap_content"  //設置imageview的高為同元件
    android:scaleType="fitXY"
    android:src="@drawable/yellowline" />

<SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="100dip"
    android:text="Button" />

        


java:

private FrameLayout.LayoutParams laParams;  //設置全域變數 laParams


laParams=(FrameLayout.LayoutParams)testimage.getLayoutParams();
//這裡很重要,需要控制的imageview在那一個view裡面,就要宣告如上去得到該元件的控制值  

//button 動作
testbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
       laParams.height = 300;
       laParams.width = 20;
       testimage.setLayoutParams(laParams); //將上面要控制imageview所變成的大小設定進去的方法
}

});


//seekbar 動作
testseekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
laParams.height = 50;
laParams.width = progress/3;  //根據seekbar拉動的位置設定元件的寬
testimage.setLayoutParams(laParams); //將上面要控制imageview所變成的大小設定進去的方法
}

});

註: 此動態改變的方式不限使用於button 和 seekbar,也可以使用於timer、thread等等。




留言

這個網誌中的熱門文章

【 Android 】控制ImageView大小&位置

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮