Android画像のスケーリング例の詳細解説


本論文ではAndroidの画像のスケーリング効果を実現します。
最初のレイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context=".MainActivity" >

  <ImageView
    android:id="@+id/iv_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

  <ImageView
    android:id="@+id/iv_2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />

</LinearLayout>

論理コードは以下の通りです。

public class MainActivity extends Activity {

  private ImageView iv1;
  private ImageView iv2;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    iv1 = (ImageView) findViewById(R.id.iv_1);
    iv2 = (ImageView) findViewById(R.id.iv_2);

    //      bitmap   
    Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),
        R.drawable.ic_launcher);

    iv1.setImageBitmap(bitmap1);

    //     bitmap
    Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth(),
        bitmap1.getHeight(), bitmap1.getConfig());

    //  alterBitmap       
    Canvas canvas = new Canvas(alterBitmap);
    //          
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    
    //          
    Matrix matrix = new Matrix();
    matrix.setValues(new float[] { 
        0.5f, 0, 0, 
        0, 1, 0, 
        0, 0, 1 
    });
    //    
    canvas.drawBitmap(bitmap1, matrix, paint);
    iv2.setImageBitmap(alterBitmap);
  }

}

マトリクスの設定が不明な場合は、上のマーク部分のコードを下記のアプリで置き換えることもできます。
 matirix.set Scale(0.5 f、1)
    注意:     行列を新規作成し、ズーム値を設定します。
       Matrix matrix=new Matrix()
        matrix.setValues(new float[]
                0.5 f,0,0
                0,1,0,
                0,0,1
        });
最後のプロジェクトの効果は以下の通りです。

以上はAndroidの画像のスケーリングの資料に対して整理して、引き続き関連している知識を補充して、ありがとうございます。