Android画像はクリック拡大縮小を実現
13259 ワード
Android画像はクリック拡大縮小を実現
レコード使用
レコード使用
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/opencar"/>
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private ImageView iv;
private static final String TAG = "MainActivity";
public boolean isAmplification=false;
/**
* false
*true
* */
public Matrix matrix=new Matrix();
public Bitmap bitmap;
public float scaleWidth;
public float scaleHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int height=dm.heightPixels;
int width=dm.widthPixels;
/* */
initView();
bitmap=((BitmapDrawable)iv.getDrawable()).getBitmap();// imageview src
scaleWidth=width/bitmap.getWidth();//
scaleHeight=height/bitmap.getHeight();
}
private void initView() {
iv = (ImageView) findViewById(R.id.iv);
iv.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.iv:
if(!isAmplification)
{
/* */
matrix.set(iv.getImageMatrix());
matrix.postScale(scaleWidth,scaleHeight);
Bitmap newbitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
iv.setImageBitmap(newbitmap);
isAmplification=true;
}
else {
/* */
matrix.set(iv.getImageMatrix());
matrix.postScale(1.0f,1.0f);
Bitmap newbitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
iv.setImageBitmap(newbitmap);
isAmplification=false;
}
break;
default:break;
}
}
}