`

SplashImage 图片闪烁

 
阅读更多

package com.easyfeeling.ui;

//public class SplashImage {
//
//}

import java.awt.Graphics;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.RescaleOp;

import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;


public class SplashImage extends JFrame{

 JBrightenComponent r1=null;
 private BufferedImage imageCharactor;

 public SplashImage()
 {
  setTitle("旋转齿轮");
  setSize(400,600);

  Image imgCharactor=new ImageIcon(getClass().getClassLoader()
   .getResource("resource/images/bj.jpg")).getImage();
  imageCharactor = new BufferedImage(imgCharactor.getWidth(null), imgCharactor.getHeight(null),
    BufferedImage.TYPE_INT_RGB);
  imageCharactor.getGraphics().drawImage(imgCharactor, 0,0, null);


  r1=new JBrightenComponent();
  r1.setBounds(0,0, 640, 480);
  this.getContentPane().add(r1);

 


 }

 

 class JBrightenComponent extends JComponent
 {
  private BrightenRunnable brightenRunnable=null;
  private Thread brightenThread=null;
  public JBrightenComponent(){
   brightenRunnable=new BrightenRunnable();
   brightenThread=new Thread(brightenRunnable);
   brightenThread.start();
  }
  public void paintComponent(Graphics g)
  {
   if (imageCharactor != null) g.drawImage(imageCharactor, 0, 0, null);  
  }
//  处理图像闪烁,就是人物图片不停旋转
  class BrightenRunnable implements Runnable{

   public void run() {
    // TODO 自动生成方法存根
    go();
   }
   private void go(){
    rotate();

   }

   private void rotate(){
    int isBrighten=-1;
    float a = 1.01f;
    for(int i=1;true;i++){
     try {
      Thread.sleep(200);
     } catch (InterruptedException e1) {
      // TODO 自动生成 catch 块
      e1.printStackTrace();
     }
     if(i%10==0){
      isBrighten*=-1;
     }
     if(isBrighten>0){
      a = 1.05f;
     }else{
      a = 0.95f;
     }
   
     //float b = 20.0f;//此值为透明色是否闪烁
     float b = 0;
     RescaleOp op = new RescaleOp(a, b, null);
     filter(op);
    }   
   }
   private void filter(BufferedImageOp op)
   {
    if (imageCharactor == null) return;
    imageCharactor = op.filter(imageCharactor, null);
    repaint();
   }
  }

 }
 public static void main(String[] args)
 {

  JFrame frame = new SplashImage();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);

 }
}

 

 

分享到:
评论

相关推荐

    Unity Splash Image 与 Launch场景的背景图无缝衔接

    Unity Splash Image 与 Launch场景的背景图无缝衔接,不会任何的抖动。http://blog.csdn.net/AnYuanLzh/article/details/50176435

    启动Splash闪烁画面

    "启动Splash闪烁画面"就是这样一个功能,它在用户打开应用程序时首先出现,给人留下深刻的第一印象。 启动画面的设计和实现涉及多个技术点,包括图形设计、编程和用户体验设计。以下是对这些知识点的详细说明: 1....

    显示程序启动图片Splash类

    在开发应用程序时,为了提升用户体验,常常会在程序启动时展示一个具有公司或产品特色的启动画面,也就是所谓的“启动图片”或“Splash Screen”。这不仅可以让用户知道程序正在加载,还能展示品牌风格,增加视觉...

    android最简单的图片切换引导页面功能

    splashImage.setImageResource(guideImages[currentImageIndex]); if (currentImageIndex ) { currentImageIndex++; } else { // 所有引导页展示完毕,跳转到主界面 startMainActivity(); return; } // ...

    AndroidSplash和图片轮播控件BGABanner.zip

    BGABanner 包含Splash界面滑动导航和各种切换动画自动轮播效果 。效果图: 基本使用1.添加Gradle依赖dependencies {  compile 'com.nineoldandroids:library:2.4.0'  compile '...

    不破解跳过unity splash 界面,去掉烦人的LOGO

    不破解跳过unity splash 界面,去掉烦人的LOGO 不破解跳过unity splash 界面,去掉烦人的LOGO 不破解跳过unity splash 界面,去掉烦人的LOGO 不破解跳过unity splash 界面,去掉烦人的LOGO 不破解跳过unity splash ...

    C#闪屏SplashScreen

    2. 右键点击PictureBox,选择“属性”,在Image属性中选择要作为背景的图片。 3. 调整PictureBox的大小和位置以适应图片,并设置SizeMode为StretchImage以保持图片比例填充。 为了实现渐进式显示,可以利用定时器...

    app启动动画以及网络图片加载

    在移动应用开发中,"app启动动画"与"网络图片加载"是两个至关重要的概念,它们不仅提升用户体验,还能在一定程度上展现应用的品牌形象。本文将深入探讨这两个主题,为初学者提供详尽的指导。 首先,我们来讨论启动...

    android程序启动画面之Splash总结

    splashImage = findViewById(R.id.splash_image); splashImage.setVisibility(View.VISIBLE); new Handler().postDelayed(new Runnable() { @Override public void run() { splashImage.setVisibility(View....

    简单炫酷Splash界面

    简单炫酷Splash界面

    修改Grub启动时的背景图片

    `splashimage=(hd0,6)/boot/grub/58022-ubuntu-grub.xpm.gz` `foreground 86B7E9` `background 1D63AF` 其中 `(hd0,6)` 需要根据实际情况修改,表示第一块硬盘的第四个分区,即 F 盘。其他硬盘和分区的表示方法类似...

    app启动页加载一张图片

    Glide.with(this).load(R.drawable.your_image).into(splashImage); countDownTimer = new CountDownTimer(2000, 1000) { // 显示2秒 @Override public void onTick(long millisUntilFinished) {} @Override ...

    DelphiXE Splash图片和主窗口上状态栏透明效果的实现.rar

    - 添加一个Image组件到Splash Form,将你设计的Splash图片设置为其`Picture`属性。 - 设置Splash Form的`Color`属性为你希望的背景颜色,通常为透明效果的基础色。 - 通过调整`AlphaBlend`和`AlphaBlendValue`...

    Splash PRO EX播放器

    Splash是专为下一代多媒体播放器打造的杰出软件,可以观看高清电影、摄像机录像、高清电视节目,享受最好的视频质量和独特的用户体验,是高清播放器领域的一支新秀 Splash1.12.1激活版下载,具有Mirillis高级解码器...

    Splash

    《Splash》是一款独特的字体设计,它以其鲜明的个性和创新的风格在众多字体中脱颖而出。在IT行业中,字体设计是用户界面(UI)和用户体验(UX)设计中的关键元素,对于提升应用程序、网站或者品牌识别度起着至关重要...

    AnimSplash_splash_

    这种动画效果可能是通过一系列图片的平滑过渡、渐变或者其他特效实现,具体实现方式取决于源代码中的图像处理和时间控制逻辑。 其次,Delphi的事件驱动模型在这个项目中起到了关键作用。通过监听和响应特定事件,如...

    java splash Screen

    1. **创建Splash Screen图像**:首先,你需要一个PNG或JPEG格式的图片作为启动画面的背景。这可以是你的应用logo或任何符合应用风格的设计。 2. **使用Java.awt.image包**:Java提供了`java.awt.image....

    VC++2010工程中加入SPLASHSCREEN

    1. 在"资源视图"中,创建一个新的位图资源,例如IDB_SPLASH_IMAGE,并导入你的启动画面图片。 2. 在CSplashScreen类的OnPaint()函数中,覆盖默认的行为,使用CBrush对象绘制位图到对话框背景。代码示例如下: ```...

    制作并修改Grub启动时的背景图片

    splashimage=(hd0,6)/boot/grub/58022-ubuntu-grub.xpm.gz foreground 86B7E9 background 1D63AF 其中,(hd0,6) 表示第一块硬盘的第四个分区,也就是 F 盘。需要根据自己的情况来修改。 如果您想使用自己的图片...

    C# winform SplashScreen

    《C# WinForm Splash Screen 实现详解》 在软件开发中,Splash Screen(启动画面)是一种常见的用户界面设计,它通常在应用程序启动时显示,提供一个动态的视觉效果,同时可以展示公司标志、加载进度等信息,提升...

Global site tag (gtag.js) - Google Analytics