图片常用的控件
16lz
2021-01-26
常用的图片控件
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
主Activity,用来显示浏览的界面:
跳转以后的界面,能够单独显示一张图片,能够上下页切换:
布局,浏览所有图片的布局:
每张图片布局item.xml:
跳转以后显示一张图片的界面:
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>
更多相关文章
- Android的Bitmap处理大图片解决方法
- Glide框架
- Android通过url下载文件到手机本地
- android中的自定义popupwindow
- Android版得HelloWorld
- Android拖拽图片的实现
- android中手势操作图片的平移、缩放、旋转
- Android(安卓)图片处理之图片叠加--Bitmap
- 实现图片浏览,改变透明度的方法