常用的图片控件



ImageView
android:contentDescription 对图片进行描述
android:scaleType fitXY 匹配X轴和Y轴
最常用的方法:
imageview.setImageResource 设置图片资源
使用的时候尽量不要使用大量的高清的图片,
手机的性能没电脑强大,过多的使用,会出现,
outofmemory的错误


ImageButton
相对于ImageView来说在周围会出现边框,让人看起来就是按钮的感觉
支持android;scaleType
如果想要使用自己定义的ImageButton可以设置一下,android:background="@/null"

两者功能上作用一样,但是为了规范一下,分开来写
imageButton其实就是一个ImageView
如果不喜欢Imageutton的边框,可以按以上设置
两者都可以设置监听器
如果显示图片,使用Imageview,如果响应时间,使用ImageButton




ImageSwitcher
其实是一种选择器
用于切换显示图片的控件
反复的调用ImageView的SetImageXXX()方法就可以实现图片的切换
使用ImageView切换显示图片的本质是在
同一个控件中设置不同的图片,而ImageSwitcher的本质是一种ViewGroup,包含2
个子级ImageView,其切换本质是ImageView
在使用ImageSwitcher时,需要为它添加2个子级的ImageView控件,且应该通过ViewSwitcher.ViewFactory

接口的实现类对象完成子级ImageView的添加

ImageSwitcher实现的类似于安卓手机自带图库的小案例:


适配器:

package com.edu.cn.image;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class ImageViewGridAdapter extends BaseAdapter {private Context context;private List<Integer>data;public ImageViewGridAdapter(Context context, List<Integer> data) {super();this.context = context;setData(data);}public void setData(List<Integer> data){if(data == null){data = new ArrayList<Integer>();}this.data = data;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn this.data.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder;if(convertView == null){holder = new ViewHolder();convertView = LayoutInflater.from(context).inflate(R.layout.grid_item, null);holder.image = (ImageView)convertView.findViewById(R.id.item_grid);           convertView.setTag(holder);}else{holder =(ViewHolder) convertView.getTag();}holder.image.setImageResource(data.get(position));return convertView;}private class ViewHolder{ImageView image;}}

主Activity,用来显示浏览的界面:

package com.edu.cn.image;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.annotation.MainThread;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;public class MainActivity extends Activity {   private GridView gridview;private ImageViewGridAdapter adapter;private ArrayList<Integer>data;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.image);gridview = (GridView)findViewById(R.id.gridView1);data = new ArrayList<Integer>();adapter = new ImageViewGridAdapter(this, data);gridview.setAdapter(adapter);data.addAll(getData());adapter.notifyDataSetChanged();gridview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,DisplayActivity.class);    intent.putIntegerArrayListExtra("data", data);intent.putExtra("position", position);startActivity(intent);}});}public List<Integer> getData(){List<Integer> data = new ArrayList<Integer>();data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.sd);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);data.add(R.drawable.rt);data.add(R.drawable.qw);return data;}}

跳转以后的界面,能够单独显示一张图片,能够上下页切换:

package com.edu.cn.image;import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.ViewSwitcher;import android.widget.ViewSwitcher.ViewFactory;public class DisplayActivity extends Activity implements ViewFactory {    private ArrayList<Integer> data;    private int position;    private ImageSwitcher imageswitcher;    ViewSwitcher v;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);  setContentView(R.layout.activity_display);    Intent intent = getIntent();    data = intent.getIntegerArrayListExtra("data");    position = intent.getIntExtra("position", 0);           imageswitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher2);   imageswitcher.setFactory(this);}public void doShowPrevious(View v){position--;if(position < 0){position = data.size() - 1;}imageswitcher.setImageResource(data.get(position));}public void doShowNext(View v){position++;if(position >= data.size()){position = 0; }imageswitcher.setImageResource(data.get(position));}@Overridepublic View makeView() {// TODO Auto-generated method stubImageView view = new ImageView(this);view.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));view.setScaleType(ScaleType.FIT_CENTER);view.setImageResource(data.get(position));return view;}}

布局,浏览所有图片的布局:


<RelativeLayout 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"     >    <GridView        android:id="@+id/gridView1"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:numColumns="3"        android:columnWidth="70dp"        android:horizontalSpacing="10dp"        android:verticalSpacing="10dp"        android:stretchMode="columnWidth"         >    </GridView></RelativeLayout>

每张图片布局item.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="200dp"    android:orientation="vertical" >    <ImageView        android:id="@+id/item_grid"        android:layout_width="match_parent"        android:layout_height="200dp"        android:layout_gravity="center_vertical"        android:src="@drawable/receive" /></LinearLayout>

跳转以后显示一张图片的界面:

<RelativeLayout 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"     >    <ImageSwitcher        android:id="@+id/imageSwitcher2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_centerVertical="true"        android:layout_centerHorizontal="true"         >    </ImageSwitcher>    <LinearLayout        android:layout_alignParentBottom="true"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/button1"            android:layout_width="match_parent"            android:layout_weight="1"            android:onClick="doShowPrevious"            android:layout_height="wrap_content"            android:text="上一张" />        <Button            android:layout_weight="1"            android:onClick="doShowNext"            android:id="@+id/button2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="下一张" />    </LinearLayout></RelativeLayout>



更多相关文章

  1. Android的Bitmap处理大图片解决方法
  2. Glide框架
  3. Android通过url下载文件到手机本地
  4. android中的自定义popupwindow
  5. Android版得HelloWorld
  6. Android拖拽图片的实现
  7. android中手势操作图片的平移、缩放、旋转
  8. Android(安卓)图片处理之图片叠加--Bitmap
  9. 实现图片浏览,改变透明度的方法

随机推荐

  1. Android Studio查看SQLite数据库方法大全
  2. 【高通SDM660平台 Android(安卓)10.0】(1
  3. 郭霖深入了解View系列 共4篇
  4. 主题:ListView(带图片)显示用法案例
  5. Android(安卓)Toolchain与Bionic Libc
  6. Android休眠设置时间设置和实现永不锁屏
  7. Android 将Activity以对话框(Dialog)形式显
  8. Android拍照、相册 获取图片后,裁剪图片
  9. android如何静默方式来安装apk
  10. 在Android(安卓)developer下载集成开发环