我想实现的功能:利用ImageView显示图像,如图放置两个按钮,点击实现上一张/下一张切换
java主要代码如下:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
//将所有图片储存到数组中
int[] imgId = {R.drawable.img01,R.drawable.img02,R.drawable.img03,
R.drawable.img04,R.drawable.img05,R.drawable.img06};
private Button btnPrev,btnNext;
private ImageView imgPhoto;
int p = 0;//图片的索引
int count = imgId.length;//共有多少张图片
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取资源中文件中的界面组件
btnPrev = (Button)findViewById(R.id.btnPrev);
btnNext = (Button)findViewById(R.id.btnNext);
imgPhoto = (ImageView)findViewById(R.id.imgphoto);
//设置button组件Click事件的Listener
btnPrev.setOnClickListener(btnPrevListener);
btnNext.setOnClickListener(btnNextListener);
}
//定义btnPrev按钮的onClick方法
private Button.OnClickListener btnPrevListener = new
Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
p--;
if(p<0){
p = imgId.length-1;
}
imgPhoto.setImageResource(imgId[p]);
setTitle("第"+(p+1)+"/"+count);
}
};
//定义btnNext按钮的OnClick方法
private Button.OnClickListener btnNextListener = new
Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
p++;
if(p == imgId.length){
p = 0;
}
imgPhoto.setImageResource(imgId[p]);
setTitle("第"+(p+1)+"/"+count);
}
};
.... main.xml代码(Strings.xml部分就不放出来了)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
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="photoplayer.com.MainActivity" >
<Button
android:id="@+id/btnPrev"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn_prev"/>
<Button
android:id="@+id/btnNext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn_next"/>
<ImageView
android:id="@+id/imgphoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img01"
android:layout_gravity="center_horizontal"
android:scaleType="fitCenter"
android:contentDescription="@string/des"/>
</LinearLayout> 现在问题来了,在模拟器运行,点击按钮『上一张』可以实现,点击『下一张』程序报错
我的模拟器版本是4.1.1,我编译所用ADT版本是23.0.6,SDK版本是6.0
创建Android项目设置的TargetSDK是4.X
麻烦大家帮我看一下怎么回事,谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
把p设置为静态变量我试了一下,设置静态变量也不行,同样的错误 在真机上试过了么?回复<aclass='referer'target='_blank'>@公子彦:模拟器本身就有各种各样的bug,这些bug还真不好说清楚在真机上可以运行,真机版本是5.1。那为什么模拟器4.1的版本不行呢?是第一次上一张就不行吗?感觉第一次点的时候是可以切换的,再点就不行了吧我说的可能不太清楚,第一个按钮(也就是实现『上一张』功能的按钮)可以正常使用。第二个按钮(NEXT)完全不能用,只要一点击程序就崩溃了。刚刚在真机(版本5.1)测试了一下,可以使用,但是模拟器(4.1的版本)就会出现这种状况。建议使用<spanstyle="color:#333333;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:10pt;line-height:1.5;background-color:#FFFFFF;">XUtils这种框架进行图片加载