当前位置: 编程技术>移动开发
本页文章导读:
▪Fragment 反正屏切换时加载不同的布局 Fragment 横竖屏切换时加载不同的布局1、创建两个FragmentActivity 让它继承 Fragment ,这里最低版本为11
package com.example.fragment;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflate.........
▪ Unity3d iGUI 运行时平添动画组件 Unity3d iGUI 运行时添加动画组件iGUI插件似乎国人都不使用该插件,或许是太简单了。相对于NGUI个人感觉还是挺不错的!我们来看看老外们
使用iGUI的案例吧:
ok!我们进入主题:
我们在游戏.........
▪ 你们对LinearLayout线性格局中Layout_weight的误解 你们对LinearLayout线性布局中Layout_weight的误解帮人找个入门级别的书得负责任,自己先看一下有无缺陷,结果发现这个:(原文发在该书的论坛上,发现受众面太小了,无奈转到这个弃用很久.........
[1]Fragment 反正屏切换时加载不同的布局
来源: 互联网 发布时间: 2014-02-18
Fragment 横竖屏切换时加载不同的布局
2、创建两个.xml 文件,用来显示屏幕切换时所用到的布局
1、创建两个FragmentActivity 让它继承 Fragment ,这里最低版本为11
package com.example.fragment; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment1 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.activity_fragment1, null); } }
package com.example.fragment; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment2 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.activity_fragment2, null); } }
2、创建两个.xml 文件,用来显示屏幕切换时所用到的布局
activity_fragment1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/ic_launcher" tools:context=".MainActivity" > </RelativeLayout>
activity_fragment2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#0000ff" tools:context=".MainActivity" > </RelativeLayout>
package com.example.fragment; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int windowHeight = this.getResources().getDisplayMetrics().heightPixels; //获取当前屏幕的高 int windowWidth = this.getResources().getDisplayMetrics().widthPixels; //获取当前屏幕的宽 Fragment1 f1 = new Fragment1(); Fragment2 f2 = new Fragment2(); FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); if(windowWidth > windowHeight){ //横屏 ft.replace(android.R.id.content, f1); //是横屏的时候显示f1的布局 }else { ft.replace(android.R.id.content, f2); //显示f2 中的布局 } ft.commit(); } }
[2] Unity3d iGUI 运行时平添动画组件
来源: 互联网 发布时间: 2014-02-18
Unity3d iGUI 运行时添加动画组件
iGUI插件似乎国人都不使用该插件,或许是太简单了。相对于NGUI个人感觉还是挺不错的!我们来看看老外们
使用iGUI的案例吧:
ok!我们进入主题:
我们在游戏开发中呢,难免会使用动画效果。当然iGUI内置的动画系统可以让我们进行拖拽组件实现,有的时候
我们也希望通过代码在运行时添加动画效果。这样做的好处是不言而喻的!
琢磨一番,我们可以使用如下的代码实现这样的效果:
代码样例:
把脚本拖拽到一个gameobject上,Play一下
前提是:你的场景中需要添加iGUIButton才有效果!
层级视图中new 出来的对象
最后效果如下:
结束语:
Enjoy!
[3] 你们对LinearLayout线性格局中Layout_weight的误解
来源: 互联网 发布时间: 2014-02-18
你们对LinearLayout线性布局中Layout_weight的误解
SDK中的原话:Indicates how much of the extra space in the LinearLayout will be allocated to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
这是什么意思呢?主要是两个关键点:extra space和pro-rated among all views,额外的空间和大小比例
说到额外的空间,不得不提另外几个属性,假设LinearLayout的android:orientation="horizontal",即水平分布,在三个控件的存在情况下,其layout_weight属性值分别为122(单个控件在某些情况下会标警示黄线,请自己尝试):
第一种情况:每个控件的宽度属性都为android:layout_width="0dp",那么额外的空为(手机的宽度假设为X)X-0-0-0=X,那么根据sdk上所述:
第一个控件的宽度为 0+(1/(1+2+2))*X=X/5
第二个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第三个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第二种情况:每个控件的宽度属性都为android:layout_width="match_parent",那么额外的空间就是X-X-X-X=-2X
第一个控件的宽度为 X+(1/(1+2+2))*(-2X)=3X/5
第二个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三种情况:其中第一个控件宽度属性为android:layout_width="match_parent",其他两个控件宽度为android:layout_width="0dp",额外的空间为X-X-0-0=0
第一个控件的宽度为 X+(1/(1+2+2))*0=X
第二个控件的宽度为 0+(2/(1+2+2))*0=0
第三个控件的宽度为 0+(2/(1+2+2))*0=0
第四种情况:第一个和第二个控件宽度属性为android:layout_width="match_parent",第三个控件宽度为android:layout_width="0dp",这个大家自己动手算算,结果很有趣。
最终结论:layout_weight的公式
控件的宽度(高度)=控件的width(height)值+(该控件的weight值/所有控件的weight的和)×额外的空间
额外的空间=手机的宽度(高度)-所有控件的宽度(高度)
有质疑的可以自己去写个代码尝试一下,希望都能踏踏实实的学习、工作,少点人云亦云,有自己的思想,网络上有关layout_weight的文章大部分都是错误的,希望本帖可以帮助一部分人。
1楼u011489615昨天 15:06哥,你太厉害了。我昨天才查这个问题,今天就给解决了,掉渣天啊。。
帮人找个入门级别的书得负责任,自己先看一下有无缺陷,结果发现这个:(原文发在该书的论坛上,发现受众面太小了,无奈转到这个弃用很久的博客里,以后把心得慢慢发上来)
Google Android开发入门与实战,第二版,P104倒数第七行括弧内容:(layout_weight越小权重越大)。
SDK中的原话:Indicates how much of the extra space in the LinearLayout will be allocated to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
这是什么意思呢?主要是两个关键点:extra space和pro-rated among all views,额外的空间和大小比例
说到额外的空间,不得不提另外几个属性,假设LinearLayout的android:orientation="horizontal",即水平分布,在三个控件的存在情况下,其layout_weight属性值分别为122(单个控件在某些情况下会标警示黄线,请自己尝试):
第一种情况:每个控件的宽度属性都为android:layout_width="0dp",那么额外的空为(手机的宽度假设为X)X-0-0-0=X,那么根据sdk上所述:
第一个控件的宽度为 0+(1/(1+2+2))*X=X/5
第二个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第三个控件的宽度为 0+(2/(1+2+2))*X=2X/5
第二种情况:每个控件的宽度属性都为android:layout_width="match_parent",那么额外的空间就是X-X-X-X=-2X
第一个控件的宽度为 X+(1/(1+2+2))*(-2X)=3X/5
第二个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三个控件的宽度为 X+(2/(1+2+2))*(-2X)=X/5
第三种情况:其中第一个控件宽度属性为android:layout_width="match_parent",其他两个控件宽度为android:layout_width="0dp",额外的空间为X-X-0-0=0
第一个控件的宽度为 X+(1/(1+2+2))*0=X
第二个控件的宽度为 0+(2/(1+2+2))*0=0
第三个控件的宽度为 0+(2/(1+2+2))*0=0
第四种情况:第一个和第二个控件宽度属性为android:layout_width="match_parent",第三个控件宽度为android:layout_width="0dp",这个大家自己动手算算,结果很有趣。
最终结论:layout_weight的公式
控件的宽度(高度)=控件的width(height)值+(该控件的weight值/所有控件的weight的和)×额外的空间
额外的空间=手机的宽度(高度)-所有控件的宽度(高度)
有质疑的可以自己去写个代码尝试一下,希望都能踏踏实实的学习、工作,少点人云亦云,有自己的思想,网络上有关layout_weight的文章大部分都是错误的,希望本帖可以帮助一部分人。
1楼u011489615昨天 15:06哥,你太厉害了。我昨天才查这个问题,今天就给解决了,掉渣天啊。。
最新技术文章: