【 Android 】動態改變ImageView的大小
承襲上一篇 imageview的 作法,新增一個button 和 seekbar去測試是否可以動態改變imageview的大小;
xml:
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等等。
留言
張貼留言