当前位置:  编程技术>移动开发
本页文章导读:
    ▪intel 平板的一个widget奇效demo简单版        intel 平板的一个widget特效demo简单版 好久没来看博客了,今天进来,给大家带来我最近写得一个特效。当然目前提供的是简单得版本,只供大家学习研究用,如果大家也有好的东西欢迎分享!.........
    ▪ 格局管理器(二)        布局管理器(二) 1.相对布局       相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的,因此这种布局方式被称为相对布局。     如果A组件的.........
    ▪ Excel 保护工作表时怎么分组显示       Excel 保护工作表时如何分组显示     在 excel 2007下测试过   代码作用域:thisworkbook   Private Sub Workbook_Open() Sheets(1).Protect Password:="***", userInterFaceonly:=True Sheets(1).EnableOutlining = True End Sub .........

[1]intel 平板的一个widget奇效demo简单版
    来源: 互联网  发布时间: 2014-02-18
intel 平板的一个widget特效demo简单版

好久没来看博客了,今天进来,给大家带来我最近写得一个特效。当然目前提供的是简单得版本,只供大家学习研究用,如果大家也有好的东西欢迎分享!

居然发现插入截图不方便。。。无语!

新浪微博:weibo.com/myzoooo

 

效果如下:

 

 

 

 

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class WinMain extends JFrame {

	private static final long serialVersionUID = 1L;
	static final int DISPLAY_NUMBER = 7;
	static final int MARGIN = 50;
	int [][] positions = new int[DISPLAY_NUMBER][3];
	int [] pox = new int[DISPLAY_NUMBER];
	boolean stopThread = false;
	boolean start = false;
	Jpan jp = null;
	Image[] mImages = null;
	BufferedImage bufferImage = null;
	boolean isLeft = false;
	
	public WinMain() {
		mImages = getImages();
		setSize(800, 500);
		setLocation(300, 0);
		setTitle("CoverFlow");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		init();
		jp=new Jpan();
		jp.addMouseListener(mouseListener);
		jp.addMouseMotionListener(mouseMotionListener);
		add(jp);
		setVisible(true);
	}
	
	public void init() {
		int v = DISPLAY_NUMBER/2;
		for(int i = -v,j = 0;i<=v;i++,j++){
			int x = i*MARGIN;
			positions[j][0] = x ;
			positions[j][1] = (int) getY(x);
			positions[j][2]=j;
		}
		sortY();
	}

	public void sortY(){
		for(int i=0;i<DISPLAY_NUMBER -1 ;i++){
			for(int j=0;j<DISPLAY_NUMBER-i-1;j++){
				int y = positions[j][1];
				int y2 = positions[j+1][1];
				if(y>y2){
					int tx = positions[j][0];
					int ty = positions[j][1];
					int tidx = positions[j][2];
					
					positions[j][0] = positions[j+1][0];
					positions[j][1] = positions[j+1][1];
					positions[j][2] = positions[j+1][2];
					
					positions[j+1][0] = tx;
					positions[j+1][1] = ty;
					positions[j+1][2] = tidx;
				}
			}
		}
	}
	public void sortX(){
		for(int i=0;i<DISPLAY_NUMBER -1 ;i++){
			for(int j=0;j<DISPLAY_NUMBER-i-1;j++){
				int x = positions[j][0];
				int x2 = positions[j+1][0];
				if(x<x2){
					int tx = positions[j][0];
					int ty = positions[j][1];
					int tidx = positions[j][2];
					
					positions[j][0] = positions[j+1][0];
					positions[j][1] = positions[j+1][1];
					positions[j][2] = positions[j+1][2];
					
					positions[j+1][0] = tx;
					positions[j+1][1] = ty;
					positions[j+1][2] = tidx;
				}
			}
		}
	}

	
	public void left(){
		int maxV = (DISPLAY_NUMBER/2)*MARGIN;
		if(pox[0]!=maxV){
			isLeft = true;
			stopThread = false;
			new Animation().start();
		}
	}
	public void right(){
		int maxV = (DISPLAY_NUMBER/2)*MARGIN;
		if(pox[DISPLAY_NUMBER-1]!=maxV){
			isLeft = false;
			stopThread = false;
			new Animation().start();
		}
	}
	
	public void move(int x){
		
	}
	
	public static void main(String[] args) {
		new WinMain();
	}
	public void draw(Graphics g){
		final int width = 120;
		final int height = 80;
		final int width2 = width/2;
		final int height2 = height/2;
		for(int i=0;i<DISPLAY_NUMBER;i++){
			int x = positions[i][0];
			int y = positions[i][1];
			int idx = positions[i][2];
			g.drawImage(mImages[idx], x+360 - width2, y+220 - height2,width,height,null);
		}
	}
	
	Object lock = new Object();
	class Animation extends Thread{
		
		final int start =  -(DISPLAY_NUMBER/2) * MARGIN;
		final int end = DISPLAY_NUMBER/2 * MARGIN;
		public void run() {
			synchronized (lock) {
				for(int idx=0;idx<MARGIN && !stopThread;idx++){
//					sortX();
					for(int i=0;i<DISPLAY_NUMBER;i++){
						int x = positions[i][0];
						int imgIdx = positions[i][2];
						if(isLeft){
							if(x-1>=start){
								int v = pox[imgIdx];
								x--;
								if(v>0){
									x++;
									pox[imgIdx]--;
								}
								
							}else{
//								x = end;
								pox[imgIdx]++;
							}
						}else{
							if(x+1>end){
//								x = start;
								pox[imgIdx]++;
							}else{
								int v= pox[imgIdx];
								x++;
								if(v>0){
									x--;
									pox[imgIdx]--;
								}
							}
						}
						positions[i][0] = x;
						positions[i][1] = (int) getY(x);
//						System.out.println("IDX:"+i +" X="+positions[i][0]+",Y="+positions[i][1]);
					}
//					System.out.println("===================="+idx+"=======================");
					sortY();
					
						
					jp.updateUI();
					try{
						Thread.sleep(5);
					}catch(Exception e){
						e.printStackTrace();
					}
				}
				stopThread=true;
				System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<");
				for(int i=0;i<pox.length;i++){
					System.out.println(pox[i]);
					System.out.println("X:"+positions[i][0]+" Y:"+positions[i][1]);
				}
				System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>");
			}
		};
	}
	
	
	class Jpan extends JPanel {
		public void paint(Graphics g) {
			super.paint(g);
			drawBackground(g);
			draw(g);
		}
	}
	
	public void drawBackground(Graphics g){
		if(bufferImage ==null){
			bufferImage = new BufferedImage(800, 500, BufferedImage.TYPE_INT_ARGB);
			Graphics bg=bufferImage.getGraphics();
			for(int i=0;i<bufferImage.getHeight();i++){
				bg.setColor(new Color(0.0f, 0.0f, 0.0f, (float) (1.0f-i*0.002)));
				bg.drawLine(0, i, this.getWidth(), i);
			}
		}
		g.drawImage(bufferImage, 0, 0, null);
	}
	
	static Image [] getImages(){
		String path = "E:\\images";
		File[] fileList = new File(path).listFiles();
		Image [] images = null;
		if(fileList !=null){
			images = new Image[fileList.length];
		}
		for(int i=0;fileList != null &&i<fileList.length ;i++){
			images[i]=Toolkit.getDefaultToolkit().createImage(fileList[i].getPath());
		}
		return images;
	}
	
	
	
	public float getY(float x){
		float a;
		float b = 4;
		
		if(x<0){
			a = 0.35f;
		}else{
			a = -0.35f;
		}
		
		float y = a*x +b;
		return y;
	}
	
	MouseMotionListener mouseMotionListener = new MouseMotionListener() {
			
			@Override
			public void mouseMoved(MouseEvent e) {
				move(e.getX());
			}
			
			@Override
			public void mouseDragged(MouseEvent e) {
				
			}
	};
	MouseListener mouseListener = new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
			}
			
			@Override
			public void mouseExited(MouseEvent e) {
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
				
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
				if(e.getX()> WinMain.this.getWidth()/2){
					System.out.println("Right");
					right();
				}else{
					System.out.println("Left");
					left();
				}
				
			}
	};
}

 


    
[2] 格局管理器(二)
    来源: 互联网  发布时间: 2014-02-18
布局管理器(二)

1.相对布局

 

    相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的,因此这种布局方式被称为相对布局。

    如果A组件的位置是由B组件的位置来决定的,Android要求先定义B组件,再顶定义A组件。

 

RelativeLayout的XML属性及相关方法说明

XML属性 相关方法 说明 android:gravity setGravity(int) 设置该布局容器内部各子组件的对齐方式 android:ignoreGravity setIgnoreGravity(int) 设置哪个组件不受gravity组件的影响

 

RelativeLayout.LayoutParams里只能设为boolean值得属性

属性 说明 android:layout_centerHorizontal 控制该子组件是否位于布局容器的水平居中位置 android:layout_centerVertical 控制该子组件是否位于布局容器的垂直居中位置 android:layout_Inparent 控制该子组件是否位于布局容器的中央位置 android:layout_alignParentBottom 控制该子组件是否位于布局容器低端对齐 android:layout_alignParentLeft 控制该子组件是否位于布局容器左边对齐

android:layout_alignParentRight

控制该子组件是否位于布局容器右边对齐 android:layout_alignParentTop 控制该子组件是否位于布局容器顶端对齐

 

 

RelativeLayout.LayoutParams里只能设为其他UI组件ID的属性

 

XML属性 说明 android:layout_toRightOf 控制该子组件位于给出ID组件的右侧 android:layout_toLeftOf 控制该子组件位于给出ID组件的左侧 android:layout_above 控制该子组件位于给出ID组件的上方 android:layout_below 控制该子组件位于给出ID组件的下方 android:layout_alignTop 控制该子组件位于给出ID组件的上边界对齐 android:layout_alignBottom 控制该子组件位于给出ID组件的下边界对齐 android:layout_alignLeft 控制该子组件位于给出ID组件的左边界对齐 android:layout_alignRight 控制该子组件位于给出ID组件的右边界对齐

 

展示梅花布局效果

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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_height="wrap_content" 
			android:layout_width="wrap_content"
			android:id="@+id/rview01"
			android:layout_centerInParent="true" 
			android:background="@drawable/leaf">
	</TextView>
	<!-- 定义该组件位于rview01组件的上方 -->
	<TextView android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:id="@+id/rview02"
			android:background="@drawable/leaf"
		    android:layout_above="@+id/rview01"
		    android:layout_alignLeft="@+id/rview01">
	</TextView>
	<!-- 定义该组件位于rview01组件的下方 -->
	<TextView android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:id="@+id/rview03"
			android:background="@drawable/leaf"
		    android:layout_below="@+id/rview01"
		    android:layout_alignLeft="@+id/rview01">
	</TextView>
	<!-- 定义该组件位于rview01组件的左边 -->
	<TextView android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:id="@+id/rview04"
			android:background="@drawable/leaf"
		    android:layout_toLeftOf="@+id/rview01"
		    android:layout_alignTop="@+id/rview01" >
	</TextView>
	<!-- 定义该组件位于rview01组件的右边 -->
	<TextView android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:id="@+id/rview05"
			android:background="@drawable/leaf"
		    android:layout_toRightOf="@+id/rview01"
		    android:layout_alignTop="@+id/rview01">
	</TextView>
</RelativeLayout>

 效果图:

 


 


2.绝对布局

 

    绝对布局由AbsoluteLayout代表,Android不提供如何布局控制,而是由开发人员自己通过X坐标,Y坐标来控制组件的位置。

 

XML属性说明

 

XML属性 说明 android:layout_x 指定该子组件的X坐标 android:layout_y 指定该子组件的Y坐标

 

Android中一般支持以下常用的距离单位

px(像素):每个px对应屏幕上的一个点。

dip或dp(device independent pixels,设备独立像素):一种及与屏幕密度的抽象单位。 在每英寸160点的显示器上,1dip=1px,但随着屏幕密度的改变,dip与px的换算会发生改变。

sp(scaled pixels,比例像素):主要处理字体的大小,可以根据用户的字体大小首选项进行缩放

in(英寸):标准长度单位

mm(毫米):标准长度单位

pt(磅):标准长度单位,1/72英寸

 

登录界面

 

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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_height="wrap_content" 
			android:layout_width="wrap_content"
			android:layout_x="20dip"
			android:layout_y="20dip"
			android:text="用户名:">
	</TextView>
	<EditText android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:layout_x="80dip"
			android:layout_y="15dip"
			android:width="200px">
	</EditText>
	<TextView android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:layout_x="20dip"
			android:layout_y="80dip"
			android:text="密码:">
	</TextView>
	<EditText android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:layout_x="80dip"
			android:layout_y="75dip"
			android:password="true"
			android:width="200px">
	</EditText>
	<Button android:layout_x="130dip"
			android:layout_y="135dip"
			android:layout_height="wrap_content" 
			android:layout_width="wrap_content"
			android:text="登录"/>
</AbsoluteLayout>
 

效果图

 

本人开了个充值淘宝网店。有需要的朋友请访问的店铺并拍下所充值的话费,

本店已加入消费保障服务计划,货源来源于淘宝充值平台,安全可靠便捷,

支付过后立即到账

http://xiaowen168.taobao.com


    
[3] Excel 保护工作表时怎么分组显示
    来源: 互联网  发布时间: 2014-02-18
Excel 保护工作表时如何分组显示

 

 

在 excel 2007下测试过

 

代码作用域:thisworkbook

 

Private Sub Workbook_Open()
    Sheets(1).Protect Password:="***", userInterFaceonly:=True
    Sheets(1).EnableOutlining = True
End Sub

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3