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; } });}如果有什么交流 可以给我