Android上传连接手机上的图片

1. ImageView图片框资源来自内存(内存放在项目的Drawable

这种很简单,就直接把图片复制到Drawable下面,然后za再调用就好了,

这个方法是我们前台的一个实现后台代码的一个class,这个方法是在继承 AppCompatActivity 后重写的一个方法 也就是当一加载界面的时候,这个方法就会运行:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/iv_second_image1"
    android:src="@drawable/s1"
    />
private int images []={R.drawable.shsf,R.drawable.s26,R.drawable.s25,R.drawable.s15,R.drawable.s26,R.drawable.dsf};
private int currentIndex=0;


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

    //找到你要放入图片的ImageView:
   ImageView iv_second_image1= (ImageView) findViewById(R.id.iv_second_image1);
  
   iv_second_image1.setImageResource(images[currentIndex]);
这样就行了,

2.图片资源来源内存卡,因为我是连接手机的,所以我直接用手机上面图片上传,下面来分享一下:

访问手机中的图片之前 必须要弄一下权限,在manifests中设置:

<!--读取内存卡权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
就好了,不然访问不了。你得到会是空值:

这个方法是我们前台的一个实现后台代码的一个class,这个方法是在继承 AppCompatActivity 后重写的一个方法 也就是当一加载界面的时候,这个方法就会运行:

private int currentIndex=0;
private int currentAplha=255;
private File [] files;
private Bitmap bitmap;

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

    //找到你要放入图片的ImageView:
    iv_second_image1= (ImageView) findViewById(R.id.iv_second_image1);
    //判断内存卡是否可用:
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
        //获取内存卡路径:
        String sdCardPath=Environment.getExternalStorageDirectory().getAbsolutePath();
        //因为我图片存在我的 G160828文件夹下面 所以:
        File file=new File(sdCardPath+"/G160828/");
        //获得文件夹下面的所以文件:
      files=file.listFiles();  
       
    }
  //然后再给ImageView设置图片:
    bitmap=BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath());
    iv_second_image1.setImageBitmap(bm);
 
3.再和大家说一下 关于图片上一张下一张的与透明度的代码与思路:再第二题的代码下衍生:
3.1点击上一张图片 然后执行的代码:
 
public void pre(View view){
    currentIndex--;
    if(currentIndex<0){
        currentIndex=0;
        Toast.makeText(this,"这已经是第一张了",Toast.LENGTH_LONG).show();
    }
    //放入图片:
    bitmap=BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath());
    
    iv_second_image1.setImageBitmap(bitmap);

}
3.2点击下一张图片 然后执行的代码:
public void next(View view){
    currentIndex++;
    if(currentIndex>=files.length-1){
        currentIndex=files.length-1;
        Toast.makeText(this, "这 已经是最后一张了", Toast.LENGTH_SHORT).show();
    }
   
 bitmap=BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath());
    iv_second_image1.setImageBitmap(bitmap);

}
4关于增加透明度于降低透明度:透明度最高是255,也就是原图 (Aplha)
//设置透明度:
public void add(View view){
    currentAplha+=20;
    if(currentAplha>=255){
        currentAplha=255;
    }
  iv_second_image1.setImageAlpha(currentAplha);
}

public void sub(View view){
    currentAplha-=20;
    if(currentAplha<=0){
        currentAplha=0;
    }
    iv_second_image1.setImageAlpha(currentAplha);
}
5.再和大家说一下 关于你触摸一张图片它就会显示它的局部给你看的那种,类似放大镜那种:
第一步,需要在前台设置一张 ImageView,它的长宽代表你所看到方法后局部的长宽:
<ImageView
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#fdf9f9"
    android:id="@+id/iv_second_image2"
    />
然后在这个方法里写:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

//给ImageView设置触摸事件:
iv_second_image1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        float x=event.getX();
        float y=event.getY();
   
        //抠图:
        Bitmap bitmap2=Bitmap.createBitmap(bitmap,(int)x,(int)y,50,50);  
bitmap代表Bitmap bitmap=BitmapFactory.decodeFile(files[currentIndex].getAbsolutePath()); 即是就是路劲,就是你触摸那种图片的路径

        iv_second_image2.setImageBitmap(bitmap2);

        return true;
    }
});
}
如果有什么交流 可以给我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值