Image

在Androidstudio中显示的图片都是png格式。可以通过qq截图得到png格式图片。
这一篇博客主要介绍ImageView和ImageSwitcher和GridView。
1.ImageView显示图片。
2.ImageSwitcher实现一张图片到另一张过度的特效。
3.GridView与ListView的用法基本一致,不同的只是布局。当我们打开手机,应用会以宫格显示,那就是GridView。
这里的图片放在res/mipmap下面,并且不用加后缀名
如何调整图片大小在本文的最后

ImageView

只需要在xml中添加布局代码如下:

	  <LinearLayout
	    android:orientation="vertical"
	    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" android:paddingLeft="@dimen/activity_horizontal_margin"
	    android:paddingRight="@dimen/activity_horizontal_margin"
	    android:paddingTop="@dimen/activity_vertical_margin"
	    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
	
	
	        <ImageView
	            android:layout_width="match_parent"
	            android:layout_height="match_parent"
	            android:src="@mipmap/a"/>//我的图片名字叫做a;
	
	
	
	</LinearLayout>

ImageView

直接提供代码:

.java

		import android.app.ActionBar;
		import android.support.v7.app.ActionBarActivity;
		import android.os.Bundle;
		import android.support.v7.app.AppCompatActivity;
		import android.view.Menu;
		import android.view.MenuItem;
		import android.view.View;
		import android.view.animation.AnimationUtils;
		import android.widget.Button;
		import android.widget.ImageSwitcher;
		import android.widget.ImageView;
		import android.widget.Toast;
		import android.widget.ViewSwitcher;
		
		
		public class MainActivity extends AppCompatActivity {
		    private ImageSwitcher switcher;
		    private Button but1, but2;
		
		
		    @Override
		    protected void onCreate(Bundle savedInstanceState) {
		        super.onCreate(savedInstanceState);
		        setContentView(R.layout.activity_main);
		        switcher = (ImageSwitcher) findViewById(R.id.switcher);
		        //设置淡入效果
		        switcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
		        switcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
		        but1 = (Button) findViewById(R.id.but1);
		        but2 = (Button) findViewById(R.id.but2);
		        //要使用ImageSwitcher视图,要实现ViewFactory接口,他会为ImageSwitchER创建所需的视图,这样就需要makeView方法。
		
		        switcher.setFactory(new ViewSwitcher.ViewFactory() {
		            @Override//创建一个新的视图;
		            public View makeView() {
		                ImageView myview = new ImageView(getApplicationContext());
		                myview.setScaleType(ImageView.ScaleType.FIT_CENTER);
		                myview.setLayoutParams(new ImageSwitcher.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT));
		                return myview;
		            }
		        });
		        //设置按钮的监听事件;
		        but1.setOnClickListener(new View.OnClickListener() {
		            @Override
		            public void onClick(View v) {
		                Toast.makeText(getApplicationContext(), "but1", Toast.LENGTH_SHORT).show();
		                switcher.setImageResource(R.mipmap.a);//a是图片名字
		            }
		        });
		        but2.setOnClickListener(new View.OnClickListener() {
		            @Override
		            public void onClick(View v) {
		                Toast.makeText(getApplicationContext(), "but2", Toast.LENGTH_SHORT).show();
		                switcher.setImageResource(R.mipmap.b);//b是图片的名字;
		            }
		        });
		    }
		}

.xml

	<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" android:paddingLeft="@dimen/activity_horizontal_margin"
	    android:paddingRight="@dimen/activity_horizontal_margin"
	    android:paddingTop="@dimen/activity_vertical_margin"
	    android:paddingBottom="@dimen/activity_vertical_margin"
	    tools:context=".MainActivity">
	
	    <Button
	            android:text="but1"
	            android:id="@+id/but1"
	            android:layout_width="wrap_content"
	            android:layout_height="wrap_content" />
	
	    <Button
	        android:text="but2"
	        android:id="@+id/but2"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:layout_gravity="right"
	        android:layout_alignParentTop="true"
	        android:layout_alignParentRight="true"
	        android:layout_alignParentEnd="true" />
	
	    <ImageSwitcher
	            android:layout_width="match_parent"
	            android:layout_height="match_parent"
	            android:id="@+id/switcher"
	        android:layout_below="@+id/but1"
	        android:layout_alignParentBottom="true">
	        </ImageSwitcher>
	
	
	
	</RelativeLayout>

最后就是GridView。

就是在网格中展示图片,在本例子中使用了三张图片,分别为a, b, c;
.xml

	<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" android:paddingLeft="@dimen/activity_horizontal_margin"
	    android:paddingRight="@dimen/activity_horizontal_margin"
	    android:paddingTop="@dimen/activity_vertical_margin"
	    android:paddingBottom="@dimen/activity_vertical_margin"
	    tools:context=".MainActivity">
	
	    <GridView
	        android:id="@+id/gridView"
	        android:layout_width="384dp"
	        android:layout_height="511dp"
	        android:layout_alignParentBottom="true">
	    </GridView>
	   
	</RelativeLayout>

.java 中;

	import android.app.ActionBar;
	import android.content.Context;
	import android.support.v7.app.ActionBarActivity;
	import android.os.Bundle;
	import android.support.v7.app.AppCompatActivity;
	import android.view.Menu;
	import android.view.MenuItem;
	import android.view.View;
	import android.view.ViewGroup;
	import android.view.animation.AnimationUtils;
	import android.widget.AdapterView;
	import android.widget.BaseAdapter;
	import android.widget.Button;
	import android.widget.GridView;
	import android.widget.ImageSwitcher;
	import android.widget.ImageView;
	import android.widget.Toast;
	import android.widget.ViewSwitcher;
	
	
	public class MainActivity extends AppCompatActivity {
	    private ImageSwitcher switcher;
	    private Button but1, but2;
	    Integer[] imageID = {
	            R.mipmap.a,
	            R.mipmap.b,
	            R.mipmap.c
	    };
	
	    @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);
	
	        GridView gridView = (GridView) findViewById(R.id.gridView);
	        gridView.setAdapter(new ImageAdapter(this));
	
	        //设置监听事件;
	        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
	            @Override
	            public void onItemClick(AdapterView parent, View view, int position, long id) {
	                Toast.makeText(getBaseContext(), "pic" + (position + 1) + "selected", Toast.LENGTH_LONG).show();
	            }
	        });
	    }
	
	
	          class ImageAdapter extends BaseAdapter
	        {
	            private Context context;
	            public ImageAdapter(Context c)
	            {
	                context = c;
	            }
	
	            public int getCount()
	            {
	                return imageID.length;
	            }
	
	            public Object getItem(int position)
	            {
	                return position;
	            }
	
	            public long getItemId(int position)
	            {
	                return position;
	            }
	
	            @Override//设置图片的尺寸;
	            public View getView(int position, View convertView, ViewGroup parent) {
	                ImageView imageView;
	                if(convertView == null)
	                {
	                    imageView = new ImageView(context);
	                    imageView.setLayoutParams(new GridView.LayoutParams(150,150));
	                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
	                    imageView.setPadding(5,5,5,5);
	                }
	                else
	                {
	                    imageView = (ImageView) convertView;
	                }
	                imageView.setImageResource(imageID[position]);
	                return imageView;
	            }
	        }
	

	
	}

补充
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是控制图片如何 resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:

CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片 不按比例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值