我想实现的功能:利用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这种框架进行图片加载
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。