当前位置:  编程技术>移动开发
本页文章导读:
    ▪fingers CXF SDO变换        fingers CXF SDO转换 try { MessageFactory mfactory12 = MessageFactory.newInstance(javax.xml.soap.SOAPConstants.SOAP_1_2_PROTOCOL); TypeHelper typeHelper = messageServiceContext.getHelperContext().getTypeHelper(); Type outType = typeHelper.getType("h.........
    ▪ CCNode的属性以及步骤的介绍        CCNode的属性以及方法的介绍 转自:http://blog.csdn.net/wujiabin468/article/details/7870838 CCNode是所有节点的父类包括(CCLayer, CCSprite, CCScene) 以下是CCNode的属性以及方法的介绍(参考:雨松MOMO程序研究院.........
    ▪ 高仿launcher跟墨迹左右拖动效果       高仿launcher和墨迹左右拖动效果   [html] view plaincopy public class SwitchViewDemoActivity extends Activity implements OnViewChangeListener, OnClickListener{       /** Called when the activity is first created.........

[1]fingers CXF SDO变换
    来源: 互联网  发布时间: 2014-02-18
fingers CXF SDO转换

try {

MessageFactory mfactory12 = MessageFactory.newInstance(javax.xml.soap.SOAPConstants.SOAP_1_2_PROTOCOL);

TypeHelper typeHelper = messageServiceContext.getHelperContext().getTypeHelper();

Type outType = typeHelper.getType("http://schemas.servicestack.net/types", "SaveCurrency");

// Type outType =messageServiceContext.getServiceInfo().getVarables().get("savecurrency");

InputStream ins = JavaCompute.class.getResourceAsStream("SaveCurrency-1.xml");

SOAPMessage resSoapMessage = null;

resSoapMessage = mfactory12.createMessage(null, ins);

DataObject outputDo = new Soap2SdoTransformer(messageServiceContext.getHelperContext(), null).transform(resSoapMessage, outType);

System.out.println(outputDo.getType().getName() + " :\n"+ outputDo.toString());

SaveCurrencyImpl saveCurrencyImpl = (SaveCurrencyImpl) outputDo;

System.out.println("saveCurrencyImpl.getCurrency().getAttachment():"+ saveCurrencyImpl.getCurrency().getAttachment());

} catch (Exception e) {

e.printStackTrace();

}


    
[2] CCNode的属性以及步骤的介绍
    来源: 互联网  发布时间: 2014-02-18
CCNode的属性以及方法的介绍

转自:http://blog.csdn.net/wujiabin468/article/details/7870838

CCNode是所有节点的父类包括(CCLayer, CCSprite, CCScene)

以下是CCNode的属性以及方法的介绍(参考:雨松MOMO程序研究院)

float rotation_

节点的旋转角度,如果是图片的话,会看到旋转效果,所以基本上是为屏幕输出服务的。

float scaleX_, scaleY_

节点的缩放比例,X为横向,Y为纵向,当值为1的时候表示原比例,0.5表示缩小一半,2表示放大1倍,如果是图片的话就会看到效果,也是为屏幕输出服务的。

CGPoint position_

节点的坐标,该属性是一个结构体,position_.x是它的横坐标,position_.y是纵坐标,基本上也是要显示到屏幕上才有意义。

float skewX_, skewY_

节点的扭曲角度,类似于Windows画图板中的扭曲功能,X是横向扭曲,Y是纵向扭曲,单位是度数,也是屏显用的。

CGPoint anchorPointInPoints_

节点的锚点坐标,所谓锚点就是当旋转、缩放或是用其它方式操作节点时的参考的基准点,例如图片的锚点在正中心,当放大它的时候,图片就会向四周扩散,当旋转一个锚点在左上角的图片时,图片就会以左上角为轴旋转。

CGPoint anchorPoint_

节点的锚点在节点位置的比例,比如说一个节点的坐标为(0, 0),宽高各为100,那么当它的锚点坐标为(50, 50)的时候,anchorPoint_.x = 0.5,anchorPoint_.y = 0.5。

CGSize contentSize_

节点的宽高,它也是一个结构体,contentSize_.width表示宽,contentSize_.height表示高,它和position_配合可以用来检测碰撞,但需要注意,contentSize_不会因为节点的旋转和缩放而改变大小。

CCCamera *camera_

节点的镜头,cocos2d虽然是2D游戏引擎,但实际上它是通过3D方式绘制2D效果的,因此有镜头存在就不奇怪了。CCCamera也是 cocos2d的一个类,它默认情况下是正对着节点的,距离也是刚好使节点能够以1:1的比例显示到屏幕上,当我们手动修改它的参数后,节点就会呈现出歪 曲或缩放等效果。

NSInteger zOrder_

节点的Z轴,当有多个节点在屏幕显示时,引擎会根据它们Z轴的大小决定绘制顺序,Z轴大的会盖住Z轴小的。

CCArray *children_

重头戏来了,前面说过节点可以有N个子节点,children_就是存储这些子节点地址的变量,节点就是通过它们找到自己的子节点的。children_ 的类型是CCArray,这是cocos2d自己封装的一个数组类,每个元素存储一个子节点地址,它引入了tag机制,当节点有多个子节点时,可以根据它 们的tag找到自己想要的那一个。

CCNode *parent_

另一个重点——节点的父节点。因为树中的每个节点都继承自CCNode,所以用CCNode类型定义父节点是最万无一失的,节点可以通过它找到自己的父节点,因为父节点最多只有一个,所以不需要用数组保存。

NSInteger tag_

节点的标签,主要是帮助其父节点找到自己,因为每个节点的子节点并不一定是唯一的,当需要遍历时可以用该参数做区分,所以兄弟节点的标签尽量不要一样。

Bool isRunning_

表示节点是否在更新逻辑,之前说过,未加入树的节点是不会显示到屏幕上的,其实它的逻辑运算也是一样,就是说没有父节点的节点不会显示,也不会处理自己的 逻辑,它的一切活动都会停止。那么当节点被加入到树中的时候,isRunning_会被自动置为Yes,此时它会开始执行自己的运算,当节点离开树 时,isRunning_会被置为No,如果想在它在树中的时候暂停运算,就需要将它的isRunning_手动置为No。

Bool visible_

和isRunning_对应,用来表示节点是否在绘制,当visible_为No时,节点即使在树中也不会绘制到屏幕上,就相当于隐藏了起来。

以上就是CCNode比较重要的属性,不过我们在开发中直接操作它们的频率并不高,而是通过类中声明的相关方法去改变它们,下面我就来说说CCNode中的方法。

+(id) node

实例化一个CCnode对象,实际上就是封装了alloc、init和autorelease方法。

-(id) init

初始化,将一些数值型的参数归0,缩放比例设为1,指针型的参数设为nil。

-(CCArray*) children

返回对象的children_,即获取全部的子节点。

-(Bool) visible

返回visible_参数,用于检测该节点当前是否被绘制。

-(void) setVisible: (Bool)visible

设置节点的绘制状态,Yes为可见,No为不可见

-(CCNode*) parent

返回节点的parent_,即获取父节点

-(void) setParent: (CCNode*)parent

设置父节点,但实际应用中不要这样修改,因为极易出bug,正确的修改方法会在后面介绍。

-(NSInteger) tag

返回对象的tag_,即获取节点的标签。

-(NSInteger) zOrder

返回对象的zOrder_,即获取Z轴。

-(Bool) isRunning

返回对象的isRunning_,即检测该节点当前是否更新逻辑。

-(float) rotation

返回对象的rotation_,即获取节点的旋转角度。

-(void) setRotation: (float)rotation

设置对象的rotation_值,即旋转节点。

-(CGPoint) position

返回对象的position_,即获取节点的坐标。

-(void) setPosition: (CGPoint)position

设置对象的position_,即更改节点的坐标。

-(CGPoint) anchorPoint

返回对象的anchorPoint_,即获取节点的锚点。

-(void) setAnchorPoint: (CGPoint)anchorPoint

设置对象的anchorPoint_,即修改节点的描点。

-(CGSize) contentSize

返回对象的contentSize_,即获取节点的宽高。

-(void) setContentSize: (CGSize)contentSize

设置对象的contentSize_,即改变节点的宽高。

-(float) skewX

返回对象的skewX_,即获取节点的横向扭曲角度。

-(void) setSkewX: (float)skewX

设置对象的skewX_,即设置节点的横向扭曲角度。

-(float) skewY

返回对象的skewY_,即获取节点的纵向扭曲角度。

-(void) setSkewY: (float)skewY

设置对象的skewY_,即设置节点的纵向扭曲角度。

-(float) scaleX

返回对象的scaleX_,即获取节点的横向缩放比例。

-(void) setScaleX: (float)scaleX

设置对象的scaleX_,即横向缩放节点。

-(float) scaleY

返回对象的scaleY_,即获取节点的纵向缩放比例。

-(void) setScaleY: (float)scaleY

设置对象的scaleY_,即纵向缩放节点。

-(CGRect) boundingBox

返回对象的碰撞框(由坐标和宽高组合而成),这个参数会随着节点的缩放或旋转等操作而改变。

-(CCCamera*) camera

返回对象的camera_,即获取节点的镜头。

-(CCNode*) getChildByTag: (NSInteger) aTag

根据tag_返回children_数组中的某个元素,即根据标签获取节点的某个子节点。

-(void) addChild: (CCNode*)child z: (NSInteger)z tag: (NSInteger)aTag

向children_数组中添加一个CCNode对象,即给节点添加一个子节点,z是子节点的Z轴,aTag是子节点的标签,此方法会将该子节点的parent_指针指向自己,因此这才是设置父节点的正解,比setParent要安全的多。

-(void) addChild: (CCNode*)child z: (NSInteger)z

-(void) addChild: (CCNode*)child

缺省了tag或z的添加子节点方法,缺省值默认为0。

-(void) removeFromParentAndCleanup: (Bool)cleanup

将节点从它的父节点的children_数组中删除,即脱离树,cleanup表示是否将其从内存中清除。

-(void) removeChild: (CCNode*)child cleanup: (Bool)cleanup

将某一节点从children_数组中删除,即删除某一子节点。

-(void) removeChildByTag: (NSInteger)aTag cleanup: (Bool)cleanup

根据tag_删除children_数组中的某个元素,即根据标签删除节点的某个子节点。

-(void) removeAllChildrenWithCleanup: (Bool)cleanup

清空对象的children_数组,即删除所有子节点。

-(void) _setZOrder: (NSInteger)z

设置对象的zOrder_,即改变节点的Z轴。

-(void) reorderChild: (CCNode*)child z: (NSInteger)z

将某节点从子节点队列中取出,并重新重新插入队列,目的是改变其Z轴。

-(void) visit

绘制函数,用来将节点内容(多为图片或文字)显示到屏幕。

-(void) onEnter

相当于一个激活过程,它会在节点被添加到树中的时候执行,使其可以更新自己的逻辑。

-(void) onExit

取消激活,作用是暂停某节点的逻辑更新。

-(CCAction*)runAction: (CCAction*)action

一个会经常被用到的类,作用是执行一种行为,行为模式由参数action决定,CCAction就是上一章提到的行为类,runAction就是联系实体 类和行为类的桥梁。行为执行完毕后,action会自动释放(用了autorelease),所以使用时不用担心内存问题。但需要注意,当 isRunning_为No时,节点执行的行为会暂停,就是说onExit有暂停节点一切行为的功能。

-(void) stopAllActions

停止节点正在执行的所有行为,注意这里是停止,不是暂停,函数执行后节点中的所有行为类实例都将从内存中清除。

-(void) stopAction: (CCAction*)action

停止节点的某一个行为,如果没有执行该行为则什么都不做。

-(void) stopActionByTag: (NSInteger)aTag

根据标签停止节点的某一个行为。

-(CCAction*) getActionByTag: (NSInteger)aTag

根据标签获取某个正在执行的行为。

-(void) schedule: (SEL)selector interval: (ccTime)interval

Schedule是cocos2d中的一个很重要的机制,在作者看来它的实用性仅次于行为类,它的功能和CCAction有相似的地方,都是执行一种行 为;不同之处在于,schedule是通过调用方法来执行逻辑的,而且他它内部还有个计时器,可以每隔一定的时间调用一次,反复循环,直到手动将其停止或 者节点被删除(暂停)。这里的参数selector就是执行的方法,interval是间隔时间(秒),ccTime其实就是一个浮点数。

-(void) unschedule: (SEL)selector: (SEL)selector

停止一个schedule任务,注意这里是停止不是暂停。

-(void) unscheduleAllSeletors

停止所有schedule任务

-(void) resumeSchedulerAndActions

恢复运行节点的行为和schedule。

-(void) pauseSchedulerAndActions

暂停节点的行为和schedule。


    
[3] 高仿launcher跟墨迹左右拖动效果
    来源: 互联网  发布时间: 2014-02-18
高仿launcher和墨迹左右拖动效果

 

 
 半个月前就有这样的想法,做出一个模仿launcher的效果。自己也曾从网上搜过很多资料,也思考过怎么实现,最终还是参考了别人的资料实现了此效果,也解决了我这半个多月的冥思苦想,再次感谢,今天把代码贴出来供大家学习,因为这方面做得比较好的资料缺失比较少(因为本人搜了很多资料都不能达到效果),如果大家觉得还不错,请顶起。

 

            首先自定义一个 ViewGroup:

 

[html] view plaincopy
  • public class MyScrollLayout extends ViewGroup{  
  •   
  •     private VelocityTracker mVelocityTracker;           // 用于判断甩动手势      
  •     private static final int SNAP_VELOCITY = 600;          
  •     private Scroller  mScroller;                        // 滑动控制器      
  •     private int mCurScreen;                               
  •     private int mDefaultScreen = 0;                            
  •     private float mLastMotionX;         
  •  //   private int mTouchSlop;                             
  •       
  •    private OnViewChangeListener mOnViewChangeListener;    
  •    
  •     public MyScrollLayout(Context context) {  
  •         super(context);  
  •         // TODO Auto-generated constructor stub  
  •         init(context);  
  •     }     
  •     public MyScrollLayout(Context context, AttributeSet attrs) {  
  •         super(context, attrs);  
  •         // TODO Auto-generated constructor stub  
  •         init(context);  
  •     }  
  •       
  •     public MyScrollLayout(Context context, AttributeSet attrs, int defStyle) {  
  •         super(context, attrs, defStyle);  
  •         // TODO Auto-generated constructor stub       
  •         init(context);  
  •     }  
  •       
  •     private void init(Context context)  
  •     {  
  •         mCurScreen = mDefaultScreen;            
  •      //   mTouchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();                  
  •         mScroller = new Scroller(context);   
  •           
  •     }  
  •   
  •     @Override  
  •     protected void onLayout(boolean changed, int l, int t, int r, int b) {  
  •         // TODO Auto-generated method stub        
  •          if (changed) {      
  •                 int childLeft = 0;      
  •                 final int childCount = getChildCount();                       
  •                 for (int i=0; i<childCount; i++) {      
  •                     final View childView = getChildAt(i);      
  •                     if (childView.getVisibility() != View.GONE) {      
  •                         final int childWidth = childView.getMeasuredWidth();      
  •                         childView.layout(childLeft, 0,       
  •                                 childLeft+childWidth, childView.getMeasuredHeight());      
  •                         childLeft += childWidth;      
  •                     }      
  •                 }      
  •             }      
  •     }  
  •   
  •     @Override  
  •     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
  •         // TODO Auto-generated method stub  
  •         super.onMeasure(widthMeasureSpec, heightMeasureSpec);         
  •         final int width = MeasureSpec.getSize(widthMeasureSpec);         
  •         final int widthMode = MeasureSpec.getMode(widthMeasureSpec);        
  •                   
  •         final int count = getChildCount();         
  •         for (int i = 0; i < count; i++) {         
  •             getChildAt(i).measure(widthMeasureSpec, heightMeasureSpec);         
  •         }                  
  •         scrollTo(mCurScreen * width, 0);          
  •     }  
  •   
  •      public void snapToDestination() {      
  •             final int screenWidth = getWidth();      
  •             final int destScreen = (getScrollX()+ screenWidth/2)/screenWidth;      
  •             snapToScreen(destScreen);      
  •      }    
  •       
  •      public void snapToScreen(int whichScreen) {          
  •             // get the valid layout page      
  •             whichScreen = Math.max(0, Math.min(whichScreen, getChildCount()-1));      
  •             if (getScrollX() != (whichScreen*getWidth())) {                       
  •                 final int delta = whichScreen*getWidth()-getScrollX();      
  •                         mScroller.startScroll(getScrollX(), 0,       
  •                         delta, 0, Math.abs(delta)*2);  
  •                   
  •                 mCurScreen = whichScreen;      
  •                 invalidate();       // Redraw the layout                      
  •                 if (mOnViewChangeListener != null)  
  •                 {  
  •                     mOnViewChangeListener.OnViewChange(mCurScreen);  
  •                 }  
  •             }      
  •         }      
  •   
  •     @Override  
  •     public void computeScroll() {  
  •         // TODO Auto-generated method stub  
  •         if (mScroller.computeScrollOffset()) {      
  •             scrollTo(mScroller.getCurrX(), mScroller.getCurrY());    
  •             postInvalidate();      
  •         }     
  •     }  
  •   
  •     @Override  
  •     public boolean onTouchEvent(MotionEvent event) {  
  •         // TODO Auto-generated method stub                            
  •             final int action = event.getAction();      
  •             final float x = event.getX();      
  •             final float y = event.getY();      
  •                   
  •             switch (action) {      
  •             case MotionEvent.ACTION_DOWN:                 
  •                   Log.i("", "onTouchEvent  ACTION_DOWN");                   
  •                 if (mVelocityTracker == null) {      
  •                         mVelocityTracker = VelocityTracker.obtain();      
  •                         mVelocityTracker.addMovement(event);   
  •                 }              
  •                 if (!mScroller.isFinished()){      
  •                     mScroller.abortAnimation();      
  •                 }                  
  •                 mLastMotionX = x;                
  •                 break;      
  •                       
  •             case MotionEvent.ACTION_MOVE:    
  •                int deltaX = (int)(mLastMotionX - x);                 
  •                if (IsCanMove(deltaX))  
  •                {  
  •                  if (mVelocityTracker != null)  
  •                  {  
  •                         mVelocityTracker.addMovement(event);   
  •                  }     
  •                 mLastMotionX = x;       
  •                 scrollBy(deltaX, 0);      
  •                }  
  •            
  •                break;                         
  •             case MotionEvent.ACTION_UP:                       
  •                 int velocityX = 0;  
  •                 if (mVelocityTracker != null)  
  •                 {  
  •                     mVelocityTracker.addMovement(event);   
  •                     mVelocityTracker.computeCurrentVelocity(1000);    
  •                     velocityX = (int) mVelocityTracker.getXVelocity();  
  •                 }                                     
  •                 if (velocityX > SNAP_VELOCITY && mCurScreen > 0) {         
  •                     // Fling enough to move left            
  •                     snapToScreen(mCurScreen - 1);         
  •                 } else if (velocityX < -SNAP_VELOCITY         
  •                         && mCurScreen < getChildCount() - 1) {         
  •                     // Fling enough to move right            
  •                     snapToScreen(mCurScreen + 1);         
  •                 } else {         
  •                     snapToDestination();         
  •                 }        
  •                                   
  •                 if (mVelocityTracker != null) {         
  •                     mVelocityTracker.recycle();         
  •                     mVelocityTracker = null;         
  •                 }         
  •           //      mTouchState = TOUCH_STATE_REST;  
  •                 break;        
  •             }                     
  •             return true;      
  •     }  
  •   
  •     private boolean IsCanMove(int deltaX)  
  •     {  
  •         if (getScrollX() <= 0 && deltaX < 0 ){  
  •             return false;  
  •         }     
  •         if  (getScrollX() >=  (getChildCount() - 1) * getWidth() && deltaX > 0){  
  •             return false;  
  •         }         
  •         return true;  
  •     }  
  •       
  •     public void SetOnViewChangeListener(OnViewChangeListener listener)  
  •     {  
  •         mOnViewChangeListener = listener;  
  •     }  
  • }  
  •  

     

    [html] view plaincopy
  • public class SwitchViewDemoActivity extends Activity implements OnViewChangeListener, OnClickListener{  
  •     /** Called when the activity is first created. */  
  •   
  •     private MyScrollLayout mScrollLayout;     
  •     private ImageView[] mImageViews;      
  •     private int mViewCount;   
  •     private int mCurSel;  
  •       
  •     @Override  
  •     public void onCreate(Bundle savedInstanceState) {  
  •         super.onCreate(savedInstanceState);  
  •         setContentView(R.layout.main);          
  •         init();  
  •           
  •     }  
  •       
  •     private void init()  
  •     {  
  •         mScrollLayout = (MyScrollLayout) findViewById(R.id.ScrollLayout);     
  •         LinearLayout linearLayout = (LinearLayout) findViewById(R.id.llayout);  
  •         //动态添加一个layout控件  
  •         LinearLayout layout=new LinearLayout(this);  
  •         layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));  
  •         layout.setBackgroundResource(R.drawable.guide01);  
  •         mScrollLayout.addView(layout);  
  •         //动态添加一个imageView控件          
  •         ImageView imageView=new ImageView(this);  
  •         imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
  •         imageView.setPadding(15, 15, 15, 15);  
  •         imageView.setImageResource(R.drawable.guide_round);  
  •         linearLayout.addView(imageView);  
  •           
  •         mViewCount = mScrollLayout.getChildCount();  
  •         mImageViews = new ImageView[mViewCount];      
  •         for(int i = 0; i < mViewCount; i++)      {  
  •             mImageViews[i] = (ImageView) linearLayout.getChildAt(i);  
  •             mImageViews[i].setEnabled(true);  
  •             mImageViews[i].setOnClickListener(this);  
  •             mImageViews[i].setTag(i);  
  •         }         
  •         mCurSel = 0;  
  •         mImageViews[mCurSel].setEnabled(false);       
  •         mScrollLayout.SetOnViewChangeListener(this);  
  •           
  •     }  
  •   
  •     private void setCurPoint(int index)  
  •     {  
  •         if (index < 0 || index > mViewCount - 1 || mCurSel == index)      {  
  •             return ;  
  •         }         
  •         mImageViews[mCurSel].setEnabled(true);  
  •         mImageViews[index].setEnabled(false);         
  •         mCurSel = index;  
  •     }  
  •   
  •     @Override  
  •     public void OnViewChange(int view) {  
  •         // TODO Auto-generated method stub  
  •         setCurPoint(view);  
  •     }  
  •   
  •     @Override  
  •     public void onClick(View v) {  
  •         // TODO Auto-generated method stub  
  •         int pos = (Integer)(v.getTag());  
  •         setCurPoint(pos);  
  •         mScrollLayout.snapToScreen(pos);  
  •     }  
  • }  

  • 最后是布局文件 :

     

     

    [html] view plaincopy
  • <?xml version="1.0" encoding="utf-8"?>  
  • <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  •     android:layout_width="fill_parent"  
  •     android:layout_height="fill_parent" >  
  •   
  •     <cn.com.karl.scroll.MyScrollLayout  
  •         xmlns:android="http://schemas.android.com/apk/res/android"  
  •         android:id="@+id/ScrollLayout"  
  •         android:layout_width="fill_parent"  
  •         android:layout_height="fill_parent" >  
  •   
  •         <LinearLayout  
  •             android:layout_width="fill_parent"  
  •             android:layout_height="fill_parent"  
  •             android:background="@drawable/guide01" >  
  •         </LinearLayout>  
  •   
  •         <LinearLayout  
  •             android:layout_width="fill_parent"  
  •             android:layout_height="fill_parent"  
  •             android:background="@drawable/guide02" >  
  •         </LinearLayout>  
  •   
  •         <LinearLayout  
  •             android:layout_width="fill_parent"  
  •             android:layout_height="fill_parent"  
  •             android:background="@drawable/guide03" >  
  •         </LinearLayout>  
  •   
  •         <LinearLayout  
  •             android:layout_width="fill_parent"  
  •             android:layout_height="fill_parent"  
  •             android:background="@drawable/guide04" >  
  •         </LinearLayout>  
  •   
  •         <LinearLayout  
  •             android:layout_width="fill_parent"  
  •             android:layout_height="fill_parent"  
  •             android:background="@drawable/guide05" >  
  •         </LinearLayout>  
  •     </cn.com.karl.scroll.MyScrollLayout>  
  •   
  •     <LinearLayout  
  •         android:id="@+id/llayout"  
  •         android:layout_width="wrap_content"  
  •         android:layout_height="wrap_content"  
  •         android:layout_alignParentBottom="true"  
  •         android:layout_centerHorizontal="true"  
  •         android:layout_marginBottom="24.0dip"  
  •         android:orientation="horizontal" >  
  •   
  •         <ImageView  
  •             android:layout_width="wrap_content"  
  •             android:layout_height="wrap_content"  
  •             android:layout_gravity="center_vertical"  
  •             android:clickable="true"  
  •             android:padding="15.0dip"  
  •             android:src="/blog_article/@drawable/guide_round/index.html" />  
  •   
  •         <ImageView  
  •             android:layout_width="wrap_content"  
  •             android:layout_height="wrap_content"  
  •             android:layout_gravity="center_vertical"  
  •             android:clickable="true"  
  •             android:padding="15.0dip"  
  •             android:src="/blog_article/@drawable/guide_round/index.html" />  
  •   
  •         <ImageView  
  •             android:layout_width="wrap_content"  
  •             android:layout_height="wrap_content"  
  •             android:layout_gravity="center_vertical"  
  •             android:clickable="true"  
  •             android:padding="15.0dip"  
  •             android:src="/blog_article/@drawable/guide_round/index.html" />  
  •   
  •         <ImageView  
  •             android:layout_width="wrap_content"  
  •             android:layout_height="wrap_content"  
  •             android:layout_gravity="center_vertical"  
  •             android:clickable="true"  
  •             android:padding="15.0dip"  
  •             android:src="/blog_article/@drawable/guide_round/index.html" />  
  •   
  •         <ImageView  
  •             android:layout_width="wrap_content"  
  •             android:layout_height="wrap_content"  
  •             android:layout_gravity="center_vertical"  
  •             android:clickable="true"  
  •             android:padding="15.0dip"  
  •             android:src="/blog_article/@drawable/guide_round/index.html" />  
  •     </LinearLayout>  
  •   
  • </RelativeLayout>  

  • 看看运行后的效果到底怎么样吧!

     


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