• 刚开始安卓,记录一个刚做的图片缩放程序


    刚开始做安卓,写了一个简陋的图片缩放程序。费了一点时间,看来还是有必要记录下来。

    布局代码:

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="clip_vertical" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="bottom|center_horizontal"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/bsx"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="缩小" />
            <Button
                android:id="@+id/bfd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="放大" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </ImageView>
        </LinearLayout>
    </FrameLayout>
    

    java代码:

    package com.example.myscalepic;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Matrix;
    import android.util.DisplayMetrics;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnClickListener {
        ImageView imgView;
        Bitmap bmp;
        int screenWidth; //屏幕宽度
        int screenHeight;//屏幕高度
        float scaleWidth = 1f; //缩放倍率
        float scaleHeight = 1f;
    @Override
    protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bmp = BitmapFactory.decodeResource(getResources(), R.drawable.feng); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels - 80; imgView = (ImageView) this.findViewById(R.id.img); Button b1 = (Button) this.findViewById(R.id.bsx); Button b2 = (Button) this.findViewById(R.id.bfd); //设置图片 imgView.setImageBitmap(bmp); b1.setOnClickListener(this); b2.setOnClickListener(this); }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public void onClick(View v) { if (v.getId() == R.id.bfd) {//点击放大按钮 scaleWidth *= 1.2; scaleHeight *= 1.2; } else { //点击缩小按钮 scaleWidth *= 0.8; scaleHeight *= 0.8; } //设置新的图片 imgView.setImageBitmap(scaleToFit()); } /** * 缩放函数 * @return */ private Bitmap scaleToFit() { int width = bmp.getWidth(); int height = bmp.getHeight(); Matrix ma = new Matrix(); ma.postScale(scaleWidth, scaleHeight); Bitmap tewmpmap; if (width * scaleWidth > screenWidth|| height * scaleHeight > screenHeight) { scaleWidth=1f; scaleHeight=1f; return bmp; } else { //得到图片缩放后的副本 tewmpmap = Bitmap.createBitmap(bmp, 0, 0, width, height, ma, true); return tewmpmap; } } }
  • 相关阅读:
    Redis入门--- 五大数据类型 ---String ,List
    Redis入门 --- 安装
    Netty 应用实例-群聊系统,心跳检测机制案例 ,WebSocket 编程实现服务器和客户端长连接
    红锁的实现
    基于Redis实现分布式锁
    基于分布式锁 分布式全局唯一ID
    Netty Java BIO 编程 (一)
    Netty Java NIO 基本介绍Channel 和 buffer (二)
    Java AIO 基本介绍
    SpringBoot 系列教程自动配置选择生效
  • 原文地址:https://www.cnblogs.com/kyyblabla/p/3130152.html
Copyright © 2020-2023  润新知