Android入门实例二 Android中图片浏览的实现
来源:互联网 发布:mysql主键外键 编辑:程序博客网 时间:2024/05/16 15:39
Android中图片浏览的实现
1.简介
本节主要通过使用ImageView来显示图片,使用ImageButton和自定义xml来实现动态的按钮点击效果,以及通过返回键退出程序的实现
2.源码&笔记
2.1通过【File】--->【New】-->【Other】-->【Android】-->【Android Application Project】新建一个Android project,起个名字【ImageView】
2.2添加所有用到的图片到【res】-->【drawable】
2.3为ImageButton设置切换动画:
2.3.1在【res】-->【drawable】(有几个不同的drawable,任选其一),【右击】-->【New】-->【Other】-->【Android XML File】-->【Next】-->在【File】里面起个名字selectorleft,注意名字不能有大写-->【finish】,添加代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 单击按钮时,ImageButton上显示的图片 -->
<item android:drawable="@drawable/button_l_press" android:state_pressed="true"></item>
<!-- 松开按钮时,ImageButton上显示的图片 -->
<item android:drawable="@drawable/button_l_off" android:state_pressed="false"></item>
</selector>
2.3.2在【res】-->【drawable】(有几个不同的drawable,任选其一),【右击】-->【New】-->【Other】-->【Android XML File】-->【Next】-->在【File】里面起个名字selectorright,注意名字不能有大写-->【finish】,添加代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 单击按钮时,ImageButton上显示的图片 -->
<item android:drawable="@drawable/button_r_press" android:state_pressed="true"></item>
<!-- 松开按钮时,ImageButton上显示的图片 -->
<item android:drawable="@drawable/button_r_off" android:state_pressed="false"></item>
</selector>
2.4 在布局文件【res】-->【layout】-->【activity_main.xml】里面设计界面,代码如下:
<LinearLayout 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:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.tonghua.imageview.MainActivity" >
<TextView
android:id="@+id/showView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:text="图片浏览器" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="228dp"
android:layout_height="326dp"
android:layout_below="@+id/textView1"
android:layout_gravity="center_horizontal"
android:scaleType="centerCrop"
android:src="@drawable/girl1" />
<LinearLayout
android:id="@+id/linear1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView1"
android:layout_marginTop="25dip"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/preBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/selectorleft" />
<ImageButton
android:id="@+id/nextBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/selectorright" />
</LinearLayout>
</LinearLayout>
2.5在【src】-->【com.tonghua.imageview】-->【MainActivity.java】里面代码如下:
package com.tonghua.imageview;
import com.example.imageview.R;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private ImageButton preBtn, nextBtn;
private ImageView imageView;
private int currImgId = 0;// 记录当前ImageView中显示图片的ID
private int imgID[] = { R.drawable.girl, R.drawable.girl1,
R.drawable.girl2, R.drawable.girl3, R.drawable.girl4,
R.drawable.girl5, R.drawable.girl6 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
preBtn = (ImageButton) findViewById(R.id.preBtn);
nextBtn = (ImageButton) findViewById(R.id.nextBtn);
preBtn.setOnClickListener(new ButtonListener());
nextBtn.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == preBtn) {// 如果点击的是“上一张”按钮
currImgId = (currImgId - 1 + imgID.length) % imgID.length;
// 计算图片在ID数组中的下标
imageView.setImageResource(imgID[currImgId]);
// 设置ImageView显示当前下标的图片
} else if (v == nextBtn) {
currImgId = (currImgId + 1 + imgID.length) % imgID.length;
// 计算图片在ID数组中的下标
imageView.setImageResource(imgID[currImgId]);
// 设置ImageView显示当前下标的图片
}
}
}
// 下面是连按返回键退出程序
private long exitTime = 0;
// 使用exitTime记录点击返回键的时间
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 键盘按键的点击事件
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
// 动作为按下,对象是返回键
if ((System.currentTimeMillis() - exitTime) > 2000) {
// 这次点击的时间与上次点击的时间的差值大于2秒
Toast.makeText(getApplicationContext(), "再按一次退出程序",
Toast.LENGTH_SHORT).show();
// 提示“再按一次退出程序”
exitTime = System.currentTimeMillis();
// 刷新时间
} else {
// 如果联系两次点击的时间差小于2秒,退出程序
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}
2.6 调试--正常
3.可能会遇到的问题-----图片资源的命名问题
3.1包含大写字母
3.2包含default和continue等Java的保留字符
3.3 以下划线(“_”)开头
3.4以数字加下划线(“[0-9]_”)开头
出现以上4种情况都会出错,你错了吗?
- Android入门实例二 Android中图片浏览的实现
- Android手机操作系统中实现图片浏览
- Android实现对图片的浏览功能
- Android中实现输入图片地址浏览图片操作
- Android开发之实现最简单最酷炫的3D图片浏览效果(二)
- Android中历史浏览功能的实现
- Android QQ空间浏览图片动画特效的实现(※)
- android手机中图片的拖拉及浏览功能
- Android实现图片预览浏览功能
- Android SmartImageView插件实现图片浏览功能
- 【Android】一个浏览图片的Android库的实现,可以移动、缩放图片以及滑动切换
- Android之图片浏览
- Android WebView图片浏览
- android 图片浏览程序
- android在线浏览图片
- Android图片浏览
- android在线浏览图片
- Android ImageView 图片浏览
- 从Java的堆栈到Equals和==的比较
- AS3 mvc应用
- BestCoder Round #1
- 3.19关于写程序的几点思考
- windows安装nginx跑php 再加上Laravel
- Android入门实例二 Android中图片浏览的实现
- 3.12关于在修复bug时的一点感悟
- Java编程报错Error(一)
- Eming Cup 网络赛 B-Topcoder
- 黑马程序员——C语言—数组、指针
- Oracle PL/SQL入门语法点
- java对象初始化顺序
- Oracle ltrim() 函数用法
- 201215-03-19---cocos2dx内存管理--详解