Android實(shí)現(xiàn)仿Windows7圖片預(yù)覽窗格效果
本實(shí)例將顯示類(lèi)似于windows7提供的圖片預(yù)覽窗格效果,單擊任意一張圖片,可以在右側(cè)顯示該圖片的預(yù)覽效果。
效果如圖所示:

具體實(shí)現(xiàn)方法:
res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout1" > <GridView android:id="@+id/gridView1" android:layout_height="match_parent" android:layout_width="440px" android:layout_marginTop="10px" android:horizontalSpacing="3px" android:verticalSpacing="3px" android:numColumns="3"/> <!-- 添加一個(gè)圖像切換器 --> <ImageSwitcher android:id="@+id/imageSwitcher1" android:padding="10px" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
MainActivity:
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity {
private int[] imageId=new int []{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,
R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9};
private ImageSwitcher imageSwitcher;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageSwitcher=(ImageSwitcher)findViewById(R.id.imageSwitcher1);//獲取圖像切換器
//設(shè)置動(dòng)畫(huà)效果
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));//設(shè)置淡入動(dòng)畫(huà)
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//設(shè)置淡出動(dòng)畫(huà)
imageSwitcher.setFactory(new ViewFactory() {
@Override
public View makeView() {
//實(shí)例化一個(gè)ImageView對(duì)象
ImageView imageView=new ImageView(MainActivity.this);
//設(shè)置保持縱橫比居中縮放圖像
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
return imageView;//返回imageView對(duì)象
}
});
imageSwitcher.setImageResource(R.drawable.img3);//設(shè)置默認(rèn)顯示的圖像
GridView gridview=(GridView)findViewById(R.id.gridView1);
BaseAdapter adapter=new BaseAdapter(){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;//聲明一個(gè)ImageView對(duì)象
if(convertView==null){
imageView=new ImageView(MainActivity.this);//實(shí)例化ImageView對(duì)象
/****************設(shè)置圖像的寬度和高度*******************/
imageView.setAdjustViewBounds(true);
imageView.setMaxWidth(150);
imageView.setMaxHeight(113);
/*********************************************************/
imageView.setPadding(5, 5, 5, 5);
}else{
imageView=(ImageView)convertView;
}
imageView.setImageResource(imageId[position]);
return imageView;
}
//功能:獲得當(dāng)前選項(xiàng)的id
@Override
public long getItemId(int position) {
return position;
}
//功能:獲得當(dāng)前選項(xiàng)
@Override
public Object getItem(int position) {
return position;
}
//獲得數(shù)量
@Override
public int getCount() {
return imageId.length;
}
};
gridview.setAdapter(adapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//顯示選中的照片
imageSwitcher.setImageResource(imageId[position]);
}
});
}
}
運(yùn)行效果與開(kāi)頭描述相同,成功實(shí)現(xiàn)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android使用RecyclerView仿美團(tuán)分類(lèi)界面
這篇文章主要為大家詳細(xì)介紹了Android使用RecyclerView仿美團(tuán)分類(lèi)界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android ActionBar完全解析使用官方推薦的最佳導(dǎo)航欄(上)
Action Bar是一種新増的導(dǎo)航欄功能,在Android 3.0之后加入到系統(tǒng)的API當(dāng)中,它標(biāo)識(shí)了用戶(hù)當(dāng)前操作界面的位置,并提供了額外的用戶(hù)動(dòng)作、界面導(dǎo)航等功能2017-04-04
WebView設(shè)置WebViewClient的方法
這篇文章主要介紹了 WebView設(shè)置WebViewClient的方法的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09
Android開(kāi)源AndroidSideMenu實(shí)現(xiàn)抽屜和側(cè)滑菜單
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)源AndroidSideMenu實(shí)現(xiàn)抽屜和側(cè)滑菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
Android使用RecyclerView實(shí)現(xiàn)列表數(shù)據(jù)選擇操作
這篇文章主要為大家詳細(xì)介紹了Android使用RecyclerView結(jié)合CheckBox實(shí)現(xiàn)列表數(shù)據(jù)選擇操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Android實(shí)現(xiàn)加載廣告圖片和倒計(jì)時(shí)的開(kāi)屏布局
這篇文章主要介紹了Android實(shí)現(xiàn)加載廣告圖片和倒計(jì)時(shí)的開(kāi)屏布局,需要的朋友可以參考下2014-07-07
探秘Android手勢(shì)事件機(jī)制與優(yōu)化技巧
在Android開(kāi)發(fā)中,手勢(shì)操作被廣泛應(yīng)用于各種應(yīng)用場(chǎng)景,如滑動(dòng)、雙擊等。本文將介紹Android手勢(shì)事件傳遞的原理,包括手勢(shì)事件的類(lèi)型、分發(fā)機(jī)制和處理流程等內(nèi)容,并提供一些優(yōu)化用戶(hù)體驗(yàn)的技巧,需要的朋友可以參考下2023-06-06
Android中比較兩個(gè)圖片是否一致的問(wèn)題
這篇文章主要介紹了Android中比較兩個(gè)圖片是否一致的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

