作者:张君杰
最近在做五子棋的界面的时候,需要有一块区域动态显示当前棋局的情况,考虑到字体和现实效果,我决定用图片来显示,这就用到了在java代码中动态切换imageView的源。
我上网找了下,有这么几种方法:
- ImageView iv;
- String fileName = "/data/data/com.test/aa.png;
- Bitmap bm = BitmapFactory.decodeFile(fileName);
- iv.setImageBitmap(bm);
- ImageView iv = new ImageView(context);
- iv.setImageResource(iv[position]);
- iv.setScaleType(ImageView.ScaleType.FIT_XY);
- iv.setLayoutParams(new Gallery.LayoutParams(136,88));
- mImageView = (ImageView)this.findViewById(R.id.myImageView1);
- mImageView.setImageDrawable(getResources().getDrawable(R.drawable.right));
但是我考虑到我这块显示区域切换比较频繁,每次都用这类语句挺麻烦的,于是我找到了另外一种方法,用xml文件预先设置好源,然后在代码里直接调用就可以了。如下:
在res下drawable下新建一个xml文件,名称按照自己喜好起,文件内容如下:
一条一条的设置好源图片和对应的id,然后设置imageView的属性:
android:src="@drawable/boardlook"
然后我们在Java文件里只要这样应用就可以了:
board.getDrawable().setLevel(2);//board是这里的imageView
如果图片很多的话,用这个方法切换就方便多了。
另外我们可以配合
board.setVisibility(View.GONE);
board.setVisibility(View.VISIBLE);
这样就可以使得一个imageView时而显示时而隐藏,加之能切换图片,这样的话可以做出一些行为简单内容比较漂亮的状态显示。