gallery扩展2——animation基于java代码——实现点击放大缩小

 

 

一、activity代码

package com.liudan.activity;

 

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;

import com.liudan.adapter.GalleryAdapter;

public class GalleryActivity extends Activity {
 
    private Gallery gallery ;
    private List<Integer> galleryList;
    private AnimationSet manimationSet;

  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        initData();
        gallery = (Gallery)findViewById(R.id.gallery);
        GalleryAdapter galleryAdapter = new GalleryAdapter(this,galleryList);
        gallery.setAdapter(galleryAdapter);
        //设置显示在屏幕中间的图片,默认是把第一张图片显示在屏幕中间,那么在屏幕的左边就是空白。
        gallery.setSelection(galleryList.size()/2);
        gallery.setOnItemSelectedListener(new GalleryOnItemSelectedListener());
       
    }
 private void initData() {
  galleryList = new ArrayList<Integer>();
  for(int i=0;i<8;i++){
   galleryList.add(R.drawable.icon);
  }
  
 }
 
 private class GalleryOnItemSelectedListener implements OnItemSelectedListener{

  @Override
  public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
   
   AnimationSet animationSet = new AnimationSet(true);
   if(manimationSet!=null && manimationSet!=animationSet){
    
    ScaleAnimation scaleAnimation = new ScaleAnimation(2,0.5f,2,0.5f,
      Animation.RELATIVE_TO_SELF,0.5f,   //相对于自身缩放到自身的哪个点。
      Animation.RELATIVE_TO_SELF,0.5f);
    scaleAnimation.setDuration(1000);
    manimationSet.addAnimation(scaleAnimation);
    manimationSet.setFillAfter(true); //让其保持动画结束时的状态。
    
    view.startAnimation(manimationSet);
   }
   
   ScaleAnimation scaleAnimation = new ScaleAnimation(1,2f,1,2f,
     Animation.RELATIVE_TO_SELF,0.5f,   //相对于自身缩放到自身的哪个点。
     Animation.RELATIVE_TO_SELF,0.5f);
   scaleAnimation.setDuration(1000);
   animationSet.addAnimation(scaleAnimation);
   animationSet.setFillAfter(true); //让其保持动画结束时的状态。
   
   view.startAnimation(animationSet);
   manimationSet = animationSet;
  }

  @Override
  public void onNothingSelected(AdapterView<?> parent) {
   // TODO Auto-generated method stub

  }
  
 }
 
 
}

 

二、adapter代码

package com.liudan.adapter;

import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class GalleryAdapter extends BaseAdapter {
 private List<Integer> galleryList;
 private Context context;

 public GalleryAdapter(Context context,List<Integer> galleryList) {
  this.galleryList = galleryList;
  this.context = context;
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return galleryList.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return galleryList.get(position);
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  View view = null;
  if(convertView == null){
   ImageView imageView = new ImageView(context);
   imageView.setImageResource(galleryList.get(position));
   view = imageView;
  }else{
   view = convertView;
  }
  // TODO Auto-generated method stub
  return view;
 }

}

 

三、xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <Gallery android:id="@+id/gallery"
   android:layout_width="fill_parent" android:layout_height="fill_parent"
   android:layout_gravity="center_horizontal"
   android:layout_centerHorizontal="true"
   android:spacing="10dip"/>
</LinearLayout>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Java 代码中使用 SmartAdmin 2.X 的图片展示功能,你需要先将 SmartAdmin 2.X 的静态资源文件(如 CSS、JavaScript、图片等)下载到本地,并将它们引入到你的 Java 项目中。 然后,你可以在 Java 代码中使用 HTML 代码实现 SmartAdmin 2.X 的图片展示功能。具体来说,你可以使用 Java 的字符串拼接功能来生成 HTML 代码,然后将生成的 HTML 代码输出到 Web 页面中。 以下是一个简单的示例代码,演示了如何在 Java 代码中生成 SmartAdmin 2.X 的图片展示功能: ```java String imgHtml = "<img src=\"path/to/image.jpg\" alt=\"My Image\">"; String galleryHtml = "<div class=\"gallery\">" + "<a href=\"path/to/image1.jpg\">" + imgHtml + "</a>" + "<a href=\"path/to/image2.jpg\">" + imgHtml + "</a>" + "<a href=\"path/to/image3.jpg\">" + imgHtml + "</a>" + "</div>"; // 将生成的 HTML 代码输出到 Web 页面中 response.getWriter().write(galleryHtml); ``` 在上面的示例代码中,我们首先定义了一个变量 `imgHtml`,它包含了一个 `<img>` 标签,用于显示一张图片。然后,我们使用字符串拼接的方式,将多个 `<a>` 标签和 `imgHtml` 拼接成一个完整的图片展示功能,并将其赋值给变量 `galleryHtml`。最后,我们将 `galleryHtml` 输出到 Web 页面中,即可在浏览器中看到 SmartAdmin 2.X 的图片展示效果。 需要注意的是,上面的示例代码仅演示了如何生成 SmartAdmin 2.X 的图片展示功能的 HTML 代码,并不包含具体的 Java Web 开发框架和技术,具体实现方式可能因项目而异。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值