遇到的主要问题
1、接口构建不完整
2、缩放的位置不是从中心缩放,效果实现得并不好
3、Matrix使用并不太熟悉
java代码
package com.example.asus.app332;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
//import android.opengl.Matrix;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.graphics.Matrix;
//import android.OnSeekBarChangeListener;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class Main7Activity extends AppCompatActivity {
//接口重构不完整
private ImageView iv_pic;
private SeekBar sb_scale;
private SeekBar sb_roate;
private Button next;
private Matrix matrix = new Matrix();
class sb_OnSeekBarChangeListener implements OnSeekBarChangeListener{
@Override
public void onProgressChanged(SeekBar seekBar,int i,boolean b){
// TODO Auto-generated method stub
if(seekBar.getId()==R.id.sb_scale){
int ivWidth=i;
int ivHeight=(int)i*3/4;
iv_pic.setLayoutParams(new LinearLayout.LayoutParams(ivWidth,ivHeight));
}
else if(seekBar.getId()==R.id.sb_roaste){
Bitmap bitmap = ((BitmapDrawable) (getResources().getDrawable(R.mipmap.b1))).getBitmap();
matrix.setRotate(i);//设置翻转的角度
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth() , bitmap.getHeight(), matrix,true);
iv_pic.setImageBitmap(bitmap);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main7);
iv_pic = (ImageView) findViewById(R.id.imageView5);
sb_roate = (SeekBar) findViewById(R.id.sb_roaste);
sb_scale = (SeekBar) findViewById(R.id.sb_scale);
DisplayMetrics displayMetrics = new DisplayMetrics();//获取屏幕分辨率的信息
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screen=displayMetrics.widthPixels;
sb_scale.setMax(500);
sb_roate.setMax(screen);
sb_roate.setOnSeekBarChangeListener(new sb_OnSeekBarChangeListener());
sb_scale.setOnSeekBarChangeListener(new sb_OnSeekBarChangeListener());
next=(Button)findViewById(R.id.next7) ;
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(com.example.asus.app332.Main7Activity.this,Main8Activity.class);
startActivity(intent);
}
});
}
}
xml代码
<SeekBar
android:id="@+id/sb_scale"
android:layout_width="400dp"
android:layout_height="30dp"
android:max="400"
android:layout_marginTop="10dp"
android:progress="120"
/>
<SeekBar
android:id="@+id/sb_roaste"
android:layout_width="400dp"
android:layout_height="30dp"
android:layout_marginTop="20dp"
android:max="360" />
<Button
android:id="@+id/next7"
android:layout_width="61dp"
android:layout_height="59dp"
android:background="@mipmap/next1"
android:layout_marginLeft="320dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.43" />
实现效果