我正在开发一个壁纸应用程序。在其中我有超过100张图片。我正在使用2个按钮将图像更改为下一个和后一个图像。现在我想使用第三个按钮打开完整的可绘制图像名称列表,这个列表应该上下移动。如果我选择所需的图像名称,则应打开该图像。 此列表顶部还有2个按钮,一个用于转到图像,另一个用于取消。这是它的样子:
这是我的XML布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="fill"
android:orientation="vertical"
android:weightSum="100" >
<ImageView
android:id="@+id/idImageViewPic"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="100"
android:adjustViewBounds="true"
android:background="#66FFFFFF"
android:maxHeight="91dip"
android:maxWidth="47dip"
android:padding="10dip"
android:src="@drawable/r0" />
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/bprev"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Back" >
</Button>
<Button
android:id="@+id/bnext"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Next" >
</Button>
</LinearLayout>
</LinearLayout>
我的主要活动:
public class Main extends Activity {
private ImageView hImageViewPic;
private Button iButton, gButton;
private int currentImage = 0;
int[] images = { R.drawable.r1, R.drawable.r2, R.drawable.r3, R.drawable.r4, R.drawable.r5, R.drawable.r6, R.drawable.r7, R.drawable.r8, R.drawable.r9, R.drawable.r10 };
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
hImageViewPic = (ImageView)findViewById(R.id.idImageViewPic);
iButton = (Button) findViewById(R.id.bnext);
gButton = (Button) findViewById(R.id.bprev);
//Just set one Click listener for the image
iButton.setOnClickListener(iButtonChangeImageListener);
gButton.setOnClickListener(gButtonChangeImageListener);
}
View.OnClickListener iButtonChangeImageListener = new OnClickListener() {
public void onClick(View v) {
//Increase Counter to move to next Image
currentImage++;
currentImage = currentImage % images.length;
hImageViewPic.setImageResource(images[currentImage]);
}
};
View.OnClickListener gButtonChangeImageListener = new OnClickListener() {
public void onClick(View v) {
//Increase Counter to move to next Image
currentImage--;
currentImage = currentImage % images.length;
hImageViewPic.setImageResource(images[currentImage]);
}
};}
如果我在XML中使用另一个按钮,那么我应该在主要活动中写什么?有更好的方法吗?
答案 0 :(得分:0)
我想,你能做的是:
你有drawables / bitmaps设备列表。
Drawable myDrawable = getResources().getDrawable(R.drawable.yourImage); // Drawables
Bitmap myLogo = ((BitmapDrawable) myDrawable).getBitmap();
imageView.setImageBitmap(myLogo);
如果从设备中选择了图像,或者您有路径:
Uri selectedImage = convert your image path into URI ;
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
userImg.setImageBitmap(bitmap);
已编辑:
最后,但在此之前,
ImageViewPic.setImageResource(images[currentImage]) ;
添加以下行:
Drawable myDrawable = getResources().getDrawable(R.drawable.yourImage); // Drawables
Bitmap currentImage= ((BitmapDrawable) myDrawable).getBitmap();
然后添加
ImageViewPic.setImageResource(images[currentImage]) ;