Android控件5

来源:互联网 发布:织梦tag标签伪静态 编辑:程序博客网 时间:2024/06/06 07:45

mageView图片框

mageView的ScaleType属性 有: matrix使用矩阵的方式缩放 fitxy  对图片独立横向缩放 使得图片完全填充

mageView

fitstart 保持长款比 图片较长的边 与 

mageView对应的边一致,然后放在左上角

fitcenter 保持长宽比图片的边与对应的边一致然后放在中间

fitend 保持缩放比图片较长的边与对应的边一致然后放在右下角

center 图片放中间 不缩放 
center corp 保持纵横比不缩放 使得图片完全覆盖

mageView

centerinside 保持纵横比缩放 使得

mageView完全显示图片 

给图片设透明度 
int currentAlpha=255;//默认的值
操作图片下一张与上一张

public class ImageActivity extends AppCompatActivity {
    //Ctrl+Alt+F
    private ImageView iv_image_image;//全局变量


    private int images[]={R.drawable.s1,//放图片的数组
                        R.drawable.s2,
                        R.drawable.s3,
                        R.drawable.s4,
                        R.drawable.s5
    };


    int currentIndex=0;//当前图片的个数
    int currentAlpha=255;//设置图片的透明度
    private File[] files;
    private Bitmap bm;
    private ImageView iv_image_new;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image);
        iv_image_image = (ImageView) findViewById(R.id.iv_image_image);//获取控件
        iv_image_new = (ImageView) findViewById(R.id.iv_image_new);
public void before(View view){
        currentIndex--;
        if(currentIndex<0){ //图片不能为负数
            currentIndex=0; 
            Toast.makeText(ImageActivity.this, "兄弟,没得选了", Toast.LENGTH_SHORT).show();
        }
        //iv_image_image.setImageResource(images[currentIndex]);
        bm= BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath());//放第一张图片
        iv_image_image.setImageBitmap(bm); //将图片放进图片框
    }
    public void next(View view){
        currentIndex++;
        if(currentIndex>=images.length){ //如果当前的图片大于数组的长度图片减一
            currentIndex=images.length-1;
            Toast.makeText(ImageActivity.this, "兄弟,没得选了", Toast.LENGTH_SHORT).show();
        }
        //iv_image_image.setImageResource(images[currentIndex]);
        bm= BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath());
        iv_image_image.setImageBitmap(bm);
    }


    public void add(View view){
        currentAlpha-=20;//透明度
        if(currentAlpha<=0){
            currentAlpha=0;
            Toast.makeText(ImageActivity.this, "看不见了", Toast.LENGTH_SHORT).show();
        }
        iv_image_image.setImageAlpha(currentAlpha);
    }
    public void sub(View view){
        currentAlpha+=20;
        if(currentAlpha>=255){/如果图片的透明度大于默认值时候透明值就等于255
            currentAlpha=255;
            Toast.makeText(ImageActivity.this, "都给你了", Toast.LENGTH_SHORT).show();
        }
        iv_image_image.setImageAlpha(currentAlpha);
    }
 如何获取 SD卡的图片 

 //判断 手机是否有内存卡 内存卡是否可用
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            //获取手机内存卡路径
            String sdCardPath=Environment.getExternalStorageDirectory().getAbsolutePath();
            //获取手机内存卡目录中的图片
            File file=new File(sdCardPath+"/images");
            files = file.listFiles();
        }

如何给图片局部放大

//给图片控件设置触摸事件
        iv_image_image.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                //获取触摸的坐标
                float x=motionEvent.getX();
                float y=motionEvent.getY();

                //截取
                Bitmap bmNew=Bitmap.createBitmap(bm,(int)x,(int)y,50,50);

                iv_image_new.setImageBitmap(bmNew);
                return true;
            }
        });