当前位置:  编程技术>移动开发
本页文章导读:
    ▪教你怎么看手相掌握命运        教你如何看手相掌握命运!......
    ▪ 仿微信首度安装界面设计(多张图片滑动)        仿微信首次安装界面设计(多张图片滑动)界面效果:                                              2.主布局文件 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" .........
    ▪ XMPP通信开发-仿QQ显示好友列表和用户组       XMPP通讯开发-仿QQ显示好友列表和用户组在 XMPP通讯开发-服务器好友获取以及监听状态变化   中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计    我们将两个.........

[1]教你怎么看手相掌握命运
    来源: 互联网  发布时间: 2014-02-18
教你如何看手相掌握命运!
男左女右(注意区分)


1. 生命线

 


生命线——即生命纹。从大拇指与食指中间的掌边开始,往掌底走的纹路。生命纹的长短并不代表寿命的长短,而是代表生命力的强弱,所以生命纹其实应该叫做生命力纹。 

生命纹长、深、红润的,生命力强,对疾病的抵抗力强,不容易生病;相反,如果纹浅、弱,就比较衰弱。
纹粗的,适合劳动或运动;纹细的,适合用脑。

生命纹包围的掌丘范围大的,也是精力充沛,爱欲旺盛;范围小的嬴弱,容易疲倦。

生命纹开头(靠掌边)有链形纹的,儿童时期体弱多病。 

生命纹尾端有如流苏,要防老人病。
 
生命纹上有岛纹,代表某一时间生病或住院,岛纹大小代表病情的轻重与时间长短。
 
2. 智能线
 


智能线——即脑纹。是掌相中最重要的一纹,中国手相中此纹代表自己,又称人纹。起点与生命线同,向小指方向走,至无名指与小指指缝间停最好,太短不够聪明,太长则精明过度,亦不好。

脑纹以深细为佳,表示思想能够集中,头脑聪明。

脑纹上有岛纹就表示思想不集中,记意力弱或脑部受挫。

脑纹起点有链形,外在环境影响求学。

智能纹与生命纹起点一起, 两纹合为一,一段距离后才分开,表示内向,谨慎,考虑周详。连的太长,则多虑,容易犹豫不决。 

如果生命线和智能线起点一起随后马上分开走,个性果断,能随机应变。 

如果两线分开有距离,是大胆外向的个性,天不怕地不怕。 

如果两线起点分开超过半公分以上,就成莽撞不经大脑的个性了。

加美女QQ:444216有惊喜

 

3. 感情线
 


感情线——即天纹或父纹。从小指下掌边起向食指方向走,以走入食指与中指缝为中庸。

若一直前进至食指下,属于心灵之域,较注重精神的爱;进入中指下面,属肉体之爱,并不注重海誓山盟。 

如果在中指下往下弯,就爱得任性,不择手段。 

若感情线长而且有分岔往下弯,则是舍一切为情牺牲。 

感情线深细的,感情也细腻,感情线粗浅的,感情也粗放。 

感情线头端(掌边)如果上下都有像羽毛状的斜纹,表示这人很热情。 

若线下没羽毛纹,只有线上有,那是机智线,表示反应好能随机应变。 

感情纹如果是链形,多愁善感。 

感情纹有岛形纹,如出现在无名指下,代表眼睛有问题,近视、弱视或闪光。 

若岛纹出现在其它位置,是感情上的困扰。 

感情线断裂,象征感情受到很大的挫折。

 
4. 婚姻线
 


婚姻线——在小指下的掌边,介于小指和感情纹之间,有的人只有一条,有的则有数条纹。

数目并不重要,总会有一条较深的纹。如果有两条一样深,就怕会容易陷入三角纠纷。

若婚姻纹超过六条,而且找不出主线,则婚姻关系较乱;婚姻纹长,择偶条件苛,对配偶的要求也高,婚姻上会有压力。

若长到无名指下并接处太阳线,可有好亲家,带来财富声望。

若冲破太阳线,则有负面效果,以至于影身响声望和财富。

婚姻纹尾部如果分岔,容易分手。 

有岛纹则可能因某种原因分居。 

婚姻线尾部往上翘,缺乏结婚的意愿。

 
5. 事业线


事业线——是从手掌底部往上升的纹,有的人可以直抵中指根部,也可称为命运纹。

有的事业线不是一条直纹,而是断断续续好几条,表示工作不稳定,或经常变更工作环境. 

事业纹升到脑纹(智能线)就停止,表示是由自己智能决定而停止工作。

如果升到岛纹而停止,则表是因感情问题而停止工作。

有两条事业纹,可以兼职或发展另一副业。
 
6. 太阳线
 


太阳线——在无名指下的直纹,与事业纹平行.若太阳纹成双线则称"名望纹"表示能在社会上有好名声。

太阳纹如果过多,兴趣广泛,但容易分散精力不专注。

太阳纹有岛纹或像十字形,都是破坏太阳纹,代表声望或金钱的损失。
 
7. 健康线


健康线——即一条从至小指下面向生命纹走,其实是"不健康纹"。因为没有健康纹的才健康. 

健康纹如果断断续续,表示肠胃消化不良;如果有链状,是呼吸系统的毛病。

若有岛纹,在纹的头端是咽喉或头部毛病,在线尾则是泌尿的问题。
 
8. 创作线


创作线——在无名指和小指指缝下斜斜的两条纹,表示这人有研究创作的才能,可以从事研究或写作、绘画,一定有成就。
 
9. 财富线


财富线——在大拇指的第二节,不论横纹或直纹,纹越多表示钱财累积越多。
 
10.其它线纹图
 
 

 

看完你学会了多少呢?不管信或不信,起码能多了解点自己,那也是好的。还是要记得为自己目标奋斗哦! 
 
 辛辛苦苦才整理出来的哦,不收藏是不是有点可惜呢?还没学会的不妨转到自己空间收藏吧!让更多朋友也能看到。

    
[2] 仿微信首度安装界面设计(多张图片滑动)
    来源: 互联网  发布时间: 2014-02-18
仿微信首次安装界面设计(多张图片滑动)

界面效果:

                                        

 

 

2.主布局文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".PagerActivity" >
  
     <android.support.v4.view.ViewPager 
         android:id="@+id/viewpager" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" >  
          
         <android.support.v4.view.PagerTitleStrip 
             android:id="@+id/pagertitle" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:layout_gravity="bottom" 
             android:background="#896443" 
             android:textColor="#164263" /> 
     </android.support.v4.view.ViewPager>   
      <LinearLayout 
             android:layout_width="wrap_content" 
             android:layout_height="match_parent" 
             android:orientation="horizontal" >

         <Button
             android:id="@+id/start"
             android:layout_width="wrap_content"
             android:layout_height="50dp"
             android:layout_gravity="start"
             android:text="直接开始我的微信生活"
             android:textSize="18sp"
             android:textColor="#489466"
             />
 
      </LinearLayout> 
     <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:orientation="horizontal" 
         android:paddingLeft="30dp"
         android:gravity="center_vertical" >        
  
         <ImageView 
             android:id="@+id/page1" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:alpha="60"
             android:layout_gravity="bottom" 
             android:layout_marginBottom="30dp"           
             android:layout_marginLeft="10dp" 
             android:scaleType="matrix" 
             android:src="/blog_article/@drawable/nn/index.html" /> 
         <ImageView 
             android:id="@+id/page2" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:layout_gravity="bottom" 
             android:layout_marginBottom="30dp"           
             android:layout_marginLeft="10dp" 
             android:scaleType="matrix" 
             android:alpha="60"
             android:src="/blog_article/@drawable/page/index.html" /> 
         <ImageView 
             android:id="@+id/page3" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:layout_gravity="bottom" 
             android:layout_marginBottom="30dp"           
             android:layout_marginLeft="10dp" 
             android:alpha="60"
             android:scaleType="matrix" 
             android:src="/blog_article/@drawable/page/index.html" /> 
         <ImageView 
             android:id="@+id/page4" 
            android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:layout_gravity="bottom" 
             android:layout_marginBottom="30dp"           
             android:layout_marginLeft="10dp" 
             android:alpha="60"
             android:scaleType="matrix" 
             android:src="/blog_article/@drawable/page/index.html" /> 
     </LinearLayout> 
  
 </FrameLayout> 


3.每个图片需要定义的布局文件 为View1.xml   View2.xml  View3.xml  View4.xml  

每一页只是设置背景和一个textview文本控件,代码都是很相似的,只列举其中一个。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:background="@drawable/aa"
   >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="77dp"
        android:textSize="28sp"
        android:textColor="#d54661"
        android:text="微信不只是个聊天工具*****可以设置自己想显示的文字" />
    
</RelativeLayout>


4.微信启动界面完成后返回到程序操作入口 .即类似我们所见的微信登录界面。

界面布局可以是登录或者微信首页,根据自己的需要设置,这里我只是一个文本提示。

<RelativeLayout     android:background="@drawable/wx">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textColor="#89494a"
        android:textSize="20sp"
        android:layout_marginTop="151dp"
        android:text="欢迎来到微信首页,您的支持是我们最大的勇气!" />

</RelativeLayout>


5.关键的activity代码。实现多张图片滑动效果。

学习使用android提供的support.v4.view.ViewPager类,重写该类填充内容代码,更改适配器显示自定义的内容,并重写页面改变监听事件(OnPageChangeListener),处理图片动画效果。

public class PagerActivity extends Activity {
	private ViewPager mViewPager;// 声明ViewPager对象
	private PagerTitleStrip strip;// 声明动画标题,此处用不到,直接可以在getPageTitle()设置
	private int currIndex = 0;// 当前页面
	private ImageView p1, p2, p3, p4;
	private Button main;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_pager);
		mViewPager = (ViewPager) this.findViewById(R.id.viewpager);
		mViewPager.setOnPageChangeListener(new MyOnPageChangeListener());
		strip = (PagerTitleStrip) this.findViewById(R.id.pagertitle);
		main=(Button) this.findViewById(R.id.start);
		p1 = (ImageView) this.findViewById(R.id.page1);
		p2 = (ImageView) this.findViewById(R.id.page2);
		p3 = (ImageView) this.findViewById(R.id.page3);
		p4 = (ImageView) this.findViewById(R.id.page4);
		//strip.s
		main.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent i=new Intent(PagerActivity.this,HelloActivity.class);
				startActivity(i);
				PagerActivity.this.finish();
			}
		});
		// 将要分页显示的View装入数组中
		LayoutInflater inflaters = LayoutInflater.from(this);
		View view1 = inflaters.inflate(R.layout.view1, null);
		View view2 = inflaters.inflate(R.layout.view2, null);
		View view3 = inflaters.inflate(R.layout.view3, null);
		View view4 = inflaters.inflate(R.layout.view4, null);
		// 每个页面的view数据
		final ArrayList<View> views = new ArrayList<View>();
		views.add(view1);
		views.add(view2);
		views.add(view3);
		views.add(view4);
		// 每一个也没标题
		final List<String> titles = new ArrayList<String>();
		titles.add("第一页");
		titles.add("第二页");
		titles.add("第三页");
		titles.add("第四页");
		// 填充ViewPager的数据适配器,我们重写即可
		PagerAdapter mPagerAdapter = new PagerAdapter() {
			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				return arg0 == arg1;
			}

			@Override
			public int getCount() {
				return views.size();
			}

			@Override
			public void destroyItem(View container, int position, Object object) {
				((ViewPager) container).removeView(views.get(position));//移除视图
			}

			@Override
			public CharSequence getPageTitle(int position) {
				return titles.get(position);//设置页标题,本项目位于屏幕底部
			}

			@Override
			public Object instantiateItem(View container, int position) {
				((ViewPager) container).addView(views.get(position));//获得当前视图
				return views.get(position);
			}
		};
		mViewPager.setAdapter(mPagerAdapter);// 设置重写的Adapter。这样就实现了ViewPager的滑动效果。
	}

	public class MyOnPageChangeListener implements OnPageChangeListener {
		public void onPageSelected(int arg0) {// 参数arg0为选中的View
			Animation animation = null;// 声明动画对象
			switch (arg0) {
			case 0:
				p1.setImageDrawable(getResources().getDrawable(R.drawable.nn));// 当前View
				p2.setImageDrawable(getResources().getDrawable(R.drawable.page));// 下一个View
				if (currIndex == arg0 - 1) {// 如果滑动到上一个View
					animation = new TranslateAnimation(arg0 - 1, arg0, 0, 0); // 圆点移动效果动画,从当前View移动到下一个View
				} else if (currIndex == arg0 + 1) {// 圆点移动效果动画,从当前View移动到下一个View,下同。
					animation = new TranslateAnimation(arg0 + 1, arg0, 0, 0);
				}
				break;
			case 1: 
				p2.setImageDrawable(getResources().getDrawable(R.drawable.nn));
				p1.setImageDrawable(getResources().getDrawable(R.drawable.page));
				p3.setImageDrawable(getResources().getDrawable(R.drawable.page));
				if (currIndex == arg0 - 1) {
					animation = new TranslateAnimation(arg0 - 1, arg0, 0, 0);
				} else if (currIndex == arg0 + 1) {
					animation = new TranslateAnimation(arg0 + 1, arg0, 0, 0);
				}
				break;
			case 2:
				p3.setImageDrawable(getResources().getDrawable(R.drawable.nn));
				p4.setImageDrawable(getResources().getDrawable(R.drawable.page));
				p2.setImageDrawable(getResources().getDrawable(R.drawable.page));
				if (currIndex == arg0 - 1) {
					animation = new TranslateAnimation(arg0 - 1, arg0, 0, 0);
				} else if (currIndex == arg0 + 1) {
					animation = new TranslateAnimation(arg0 + 1, arg0, 0, 0);
				}
				break;
			case 3:
				p4.setImageDrawable(getResources().getDrawable(R.drawable.nn));
				p3.setImageDrawable(getResources().getDrawable(R.drawable.page));
				if (currIndex == arg0 - 1) {
					animation = new TranslateAnimation(arg0 - 1, arg0, 0, 0);
				} else if (currIndex == arg0 + 1) {
					animation = new TranslateAnimation(arg0 + 1, arg0, 0, 0);
				}
				break;
			}
			currIndex = arg0;// 设置当前View
			animation.setFillAfter(true);// True:设置图片停在动画结束位置
			animation.setDuration(500);// 设置动画持续时间
		}

		@Override
		public void onPageScrollStateChanged(int arg0) {

		}

		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {

		}
	}
}


 

 

使用的图片nn.gif(被选择时     page.gif(初始状态)

 

                                                  

 

 微信上的是一个小点,效果是有很大区别,自己设计的没有那么美观,但是大体功能基本实现,自己学到了关于ViewPager类的使用。          图片按钮是在网上找的,并用图片处理程序稍微涂改了一下,以便区别用户当前选择的页,并实时更新图片。修改不仔细只是学会如何显示该功能,以后开发项目时应用到可以借鉴并美化好各个界面,达到给人一种美观效果,自己美化比较缺少,希望自己在网页设计上也有一定提高,继续学习!


    
[3] XMPP通信开发-仿QQ显示好友列表和用户组
    来源: 互联网  发布时间: 2014-02-18
XMPP通讯开发-仿QQ显示好友列表和用户组

在 XMPP通讯开发-服务器好友获取以及监听状态变化   中我们获取服务器上的用户好友信息,然后结合XMPP通讯开发-好友获取界面设计    我们将两个合并起来,首先获取用户组,然后把用户组用List存储起来用作对比好友的用户组,根据用户组的个数然后创建相应的DefaultMutableTreeNode节点用于添加好友,获取好友列表,根据用户组把当前用户添加的所属的用户组,这里要注意的是一个好友可以存在不同的用户组里面,所以获取的好友所在的组也是一个集合,最后在添加一个根的DefaultMutableTreeNode把之前用户组都添加到根组里面,最后把根组添加到JTree里面最后再把JTree添加到jTabbedPane里面.主要代码如下:

  /**
     * 获取用户好友
     */
    public void getRoster() {
        if (conn != null) {
            roster = conn.getRoster();
            getRosterPresenceChange();
            Collection<RosterGroup> groups = roster.getGroups();
            int size = groups.size();
            treeNode = new DefaultMutableTreeNode[size];
            int i = 0;
            for (RosterGroup group : groups) {
                groupsList.add(group.getName());
                treeNode[i] = new DefaultMutableTreeNode(group.getName());
                i++;
            }
            Collection<RosterEntry> entries = roster.getEntries();
            for (RosterEntry entry : entries) {
                Collection<RosterGroup> group = entry.getGroups();
                for (RosterGroup g : group) {
                    if (groupsList != null) {
                        int size_1 = groupsList.size();
                        for (i = 0; i < size_1; i++) {
                            if (g.getName().equals(groupsList.get(i))) {
                                treeNode[i].add(new DefaultMutableTreeNode(entry.getName()));
                            }
                        }
                    }
                }
            }
            for (i = 0; i < size; i++) {
                top.add(treeNode[i]);
            }
            JTree tree = new JTree(top);
            JScrollPane scrollPane = new JScrollPane();
            scrollPane.setViewportView(tree);
           jTabbedPane.addTab("好 友", scrollPane);
        }
    }

效果图如下:



源码项目:https://github.com/jwzhangjie/IChat_PC.git





    
最新技术文章:
▪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