当前位置:  编程技术>移动开发
本页文章导读:
    ▪最近写的一个解析网页的应用,用到了图片上载,SAX解析,AsyncTack,Thread,请们指教        最近写的一个解析网页的应用,用到了图片下载,SAX解析,AsyncTack,Thread,请大虾们指教 //这个是SAX解析的所有   public class XMLContentHandler extends DefaultHandler  {  private boolean IsDisplayNameTag =false; pr.........
    ▪ 一个游戏发动机——Rokon        一个游戏引擎——Rokon http://www.eoeandroid.com/viewthread.php?tid=26588   关于RokonRokon 是Android平台一个开源(New BSD)的2D OpenGL 游戏引擎,目前版本为 2.0.3 (09/07/10) 。其中集成了Box2D,帮助你在游戏中实.........
    ▪ 动态改动屏幕方向       动态更改屏幕方向   LANDSCAPE与PORTRAIT 范例说明 要如何通过程序控制Activity的显示方向?在Android中,若要通过程序改变屏幕显示的方向,必须要覆盖setRequestedOrientation()方法,而若要取得.........

[1]最近写的一个解析网页的应用,用到了图片上载,SAX解析,AsyncTack,Thread,请们指教
    来源: 互联网  发布时间: 2014-02-18
最近写的一个解析网页的应用,用到了图片下载,SAX解析,AsyncTack,Thread,请大虾们指教

//这个是SAX解析的所有

 

public class XMLContentHandler extends DefaultHandler  {

 private boolean IsDisplayNameTag =false;
 private boolean IsAvatarTag =false;
 private boolean IsReputationTotalTag =false;
 private boolean IsUserTag =false;
 private String  DisplayName="DisplayName";
 private String  Avatar="Avatar";
 private String  ReputationTotal="ReputationTotal";
 private Users users ;
 private List<Users> list;
 
  public List<Users> getUsers() {  
         return list;  
     }
 
 //打开xml文档的回调函数
 @Override
 public void startDocument() throws SAXException{
  //这里做list的初始化工作 
  Log.e("+++++++++>1","1");
  list =new ArrayList<Users>();
  
 }
 
 

 //一旦发现元素开始标记就回调此函数
 @Override
 public void startElement(String uri, String localName, String qName,
   Attributes attributes) throws SAXException {
  if (localName.equals("User")) {
   users =new Users();
   IsUserTag =true;
  }
  if (localName.equals(DisplayName)) {
   IsDisplayNameTag=true;
  }else if (localName.equals(Avatar)) {
   IsAvatarTag =true;
  }else if (localName.equals(ReputationTotal)) {
   IsReputationTotalTag =true;
  }
  
 }
 //一发现元素值或属性值就回调此函数
 @Override
 public void characters(char[] ch, int start, int length)
   throws SAXException {
  String data =new String(ch,start,length);
  if (IsDisplayNameTag) {
   users.setDisplayName(data);
  }else if (IsAvatarTag) {
   users.setAvatar(data);
  }else if (IsReputationTotalTag) {
   users.setReputationTotal(data);
//   Log.i("uuuuuuuuuuuu3",data);
  }else {
   
  }
 }
 
 //一旦发现元素结束标记就回调此函数
 @Override
 public void endElement(String uri, String localName, String qName)
   throws SAXException {
  if (localName.equals("User")) {
   IsUserTag=false;
  
   list.add(users);
  }
  if (localName.equals(DisplayName)) {
   IsDisplayNameTag =false;
  }else if (localName.equals(Avatar)) {
   IsAvatarTag =false;
  }else if (localName.equals(ReputationTotal)) {
   IsReputationTotalTag =false;
  }
  
 }
 //关闭xml文档的回调函数
 @Override
 public void endDocument() throws SAXException {
  // TODO Auto-generated method stub
  Log.e("+++++++++>5","5");
  super.endDocument();
  
 }


}

 

//  解析的标签
  * User DisplayName  Avatar ReputationTotal需要解析的标签
  * */
public class Users {
 private String User;
 private String DisplayName;
 private String Avatar;
 private String ReputationTotal;
 public String getUser() {
  return User;
 }
 public void setUser(String user) {
  User = user;
 }
 public String getDisplayName() {
  return DisplayName;
 }
 public void setDisplayName(String displayName) {
  DisplayName = displayName;
 }
 public String getAvatar() {
  return Avatar;
 }
 public void setAvatar(String avatar) {
  Avatar = avatar;
 }
 public String getReputationTotal() {
  return ReputationTotal;
 }
 public void setReputationTotal(String reputationTotal) {
  ReputationTotal = reputationTotal;
 }
 
}

 

 

 

 

/**自定义的MyAdapter 继承BaseAdapter

*最下面是一个ASYNCTACK的异步刷新

*

*/

public class MyAdapter extends BaseAdapter {
 private LayoutInflater inflater;
 private List<Users> items;
 public MyAdapter(Context context,List<Users> it){
  inflater =LayoutInflater.from(context);
  items =it;
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return items.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return 0;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  LinearLayout layout =(LinearLayout) inflater.inflate(R.layout.listone, null);
  Users user =items.get(position);
  TextView txtname =(TextView) layout.findViewById(R.id.txtup);
  txtname.setTextColor(Color.BLACK);
  txtname.setTextSize(20);
  txtname.setText(user.getDisplayName());
  TextView txtrep = (TextView) layout.findViewById(R.id.txtdown);
  txtname.setTextColor(Color.BLACK);
  txtrep.setTextSize(10);
  txtrep.setText(user.getReputationTotal());
  ImageView img =(ImageView) layout.findViewById(R.id.img01);
  String image =user.getAvatar();
  img.setTag(image);
  new AsyncLoader().execute(img);
  img.setDrawingCacheEnabled(true);
  return layout;
 }
 
 
  //继承于AsyncTask 刷新ImageView,未实现图片下载到SD卡的功能;
    class AsyncLoader extends AsyncTask <ImageView, Void, Bitmap>{
     private ImageView gView;
     protected Bitmap doInBackground(ImageView... views) {
      Bitmap bmp = null;
      ImageView view = views[0];
      // 根据iconUrl获取图片并渲染,iconUrl的url放在了view的tag中。
      if (view.getTag() != null) {
       try {
        URL url = new URL(view.getTag().toString());
        GetImage image =new GetImage();
        bmp =image.getImage(url);
        
       } catch (Exception e) {
        Log.v("img", e.getMessage());
        return null;
       }
      }
      this.gView = view;
      return bmp;
     }
 
     protected void onPostExecute(Bitmap bm) {
      if (bm != null) {
       this.gView.setImageBitmap(bm);
       this.gView = null;
      }
     }
  
       
    }

}


    
[2] 一个游戏发动机——Rokon
    来源: 互联网  发布时间: 2014-02-18
一个游戏引擎——Rokon

http://www.eoeandroid.com/viewthread.php?tid=26588

 

关于Rokon
Rokon 是Android平台一个开源(New BSD)的2D OpenGL 游戏引擎,目前版本为 2.0.3 (09/07/10) 。其中集成了Box2D,帮助你在游戏中实现物理效果。
网站:http://rokonandroid.com/
google code: http://code.google.com/p/rokon/

 

我收集了一些资料,如果有需要的留下邮箱

6 楼 sword0607 2010-10-27  
sword0607@gmail.com, 多谢!
7 楼 ljh89422656 2010-11-04  
ljh89422656@126.com 麻烦楼主发给我份资料...我正在学习呢...谢谢了
8 楼 zhanghongboy 2010-11-08  
zhanghong1983000@163.com 我也正在学习这个引擎呢,麻烦楼主发我一份...谢谢了
9 楼 中华神韵 2010-11-08  
simingli123@163.com

刚开始学 谢了!
10 楼 gujinf2010 2010-11-09  
gujinf2008@163.com
现在急用,谢谢
11 楼 gujinf2010 2010-11-09  
gujinf2008$163.com($->@)
谢谢了,急用
12 楼 gujinf2010 2010-11-09  
原来回复的帖子在最上面啊,还以为在下面,一看没有,就又回复了一遍,呵呵
13 楼 wxw404 2010-11-09  
楼主真是雪中送炭啊,我在到处找呢,赶快发我一份

wxw404@gmail.com
14 楼 sword0607 2010-11-19  
sword0607@gmail.com

多谢楼主
15 楼 lolomarx 2010-12-05  
谢谢 jovemark@gmail.com
16 楼 lovehui0228 2011-01-27  
之前做的一个项目就是用的这个引擎,感觉蛮好的,就是它的贴图部分效率比较低,我重写了那部分~~~
17 楼 live17909 2011-07-23  
paladin383@gmail.com.希望能收到你的资料,真的很感激!谢谢!
18 楼 xyzd6997 2011-07-28  
谢谢,xyzd6997@163.com
19 楼 lcyrAtve 2011-07-29  
正着资料呢,我的邮箱是zhouhaichao@2008.sina.com,谢谢了
20 楼 jakend 2011-07-31  
jakend@163.com
21 楼 shenopkss 2011-11-08  
兄弟,求资料啊 421713337@qq.com 非常感谢!
22 楼 bLack_face 2011-12-17  
itlyzong@gmail.com
希望楼主还能看见
23 楼 zcllige 2012-02-27  
你好, 现在好有资料吗,正要用,邮箱是zhucl@yahoo.cn谢谢了
24 楼 hkingly 2012-03-14  
382947236@qq.com 希望楼主能看得见谢谢。。。。。
25 楼 ym19860303 2012-04-11  
1012607376@qq.com  楼主,谢谢!!

    
[3] 动态改动屏幕方向
    来源: 互联网  发布时间: 2014-02-18
动态更改屏幕方向

 

LANDSCAPE与PORTRAIT
范例说明

要如何通过程序控制Activity的显示方向?在Android中,若要通过程序改变屏幕显示的方向,必须要覆盖setRequestedOrientation()方法,而若要取得目前的屏幕方向,则需要访问getRequestedOrientation()方法。

本范例为求简要示范更改做法,设计了一个按钮,当单击按钮的同时,判断当下的屏幕方向,例如竖排(PORTRAIT),则将其更改为横排(LANDSCAPE);若为横排(LANDSCAPE),则将其更改为竖排(PORTRAIT),范例非常简单。图5-25所示是运行的结果。

本程序重写setRequestedOrientation()方法,其目的是为了要捕捉设置屏幕方向的同时所触发的事件,并在更改的时候,以Toast显示要更改的方向。

范例程序
src/irdc.ex05_22/EX05_22.java

程序一开始(onCreate)先判断getRequestedOrientation()的值是否为-1,若此值为-1,表示在Activity属性里没有设置Android:screenOrientation的值,这意味着即使单击按钮,也无法判断屏幕的方向,不会进行更改方向的事件了。

在被覆盖的setRequestedOrientation()事件里,会传入要转换的方向常数(requestedOrientation),其值为整数类型,有以SCREEN_ORIENTATION_PORTRAIT及SCREEN_ORIENTATION_LAN- DSCAPE两个指定常数。

 

/* import程序略 */

import android.content.pm.ActivityInfo;

import android.view.Display;

 

public class EX05_22 extends Activity

{

  private TextView mTextView01;

  private Button mButton01;

 

  /** Called when the activity is first created. */

  @Override

  public void onCreate(Bundle savedInstanceState)

  {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

   

    mButton01 = (Button)findViewById(R.id.myButton1);

    mTextView01 = (TextView)findViewById(R.id.myTextView1);

   

    if(getRequestedOrientation()==-1)

    {

      mTextView01.setText(getResources().getText

      (R.string.str_err_1001));

    }

   

    /* 当单击按钮旋转屏幕画面 */

    mButton01.setOnClickListener(new Button.OnClickListener()

    {

      @Override

      public void onClick(View arg0)

      {

        /* 方法一:重写getRequestedOrientation */

       

        /* 若无法取得screenOrientation属性 */

        if(getRequestedOrientation()==-1)

        {

          /* 提示无法进行画面旋转功能,因无法判别Orientation */

          mTextView01.setText(getResources().getText

          (R.string.str_err_1001));

        }

        else

        {

          if(getRequestedOrientation()==

             ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

          {

            /* 若目前为横排,则更改为竖排呈现 */

            setRequestedOrientation

            (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

          }

          else if(getRequestedOrientation()==

                  ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)

          {

            /* 若目前为竖排,则更改为横排呈现 */

            setRequestedOrientation

            (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

          }

        }

      }     

    });

  }

 

  @Override

  public void setRequestedOrientation(int requestedOrientation)

  {

    // TODO Auto-generated method stub

   

    /* 判断要更改的方向,以Toast提示 */

    switch(requestedOrientation)

    {

      /* 更改为LANDSCAPE */

      case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE):

        mMakeTextToast

        (

          getResources().getText(R.string.str_msg1).toString(),

          false

        );

        break;

      /* 更改为PORTRAIT */

      case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT):

        mMakeTextToast

        (

          getResources().getText(R.string.str_msg2).toString(),

          false

        );

        break;

    }

    super.setRequestedOrientation(requestedOrientation);

  }

 

  @Override

  public int getRequestedOrientation()

  {

    // TODO Auto-generated method stub

   

    /* 此重写getRequestedOrientation方法,可取得目前屏幕的方向 */

    return super.getRequestedOrientation();

  }

 

  public void mMakeTextToast(String str, boolean isLong)

  {

    if(isLong==true)

    {

      Toast.makeText(EX05_22.this, str, Toast.LENGTH_LONG).show();

    }

    else

    {

      Toast.makeText(EX05_22.this, str, Toast.LENGTH_SHORT).show();

    }

  }

}

AndroidManifest.xml

请留意在AndroidManifest.xml当中需要设置Activity的Android:screenOrientation属性,否则,程序将无法通过getRequestedOrientation()方法,来判断现在Activity的方向。

 

<?xml version="1.0" encoding="utf-8"?>

<manifest

  xmlns:android="http://schemas.android.com/apk/res/android"

  package="irdc.ex05_22"

  android:versionCode="1"

  android:versionName="1.0.0">

  <application

    android:icon="@drawable/icon"

    android:label="@string/app_name">

    <activity

      android:name=".EX05_22"

      android:label="@string/app_name"

      android:screenOrientation="portrait">

      <intent-filter>

        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />

      </intent-filter>

    </activity>

  </application>

<uses-sdk android:minSdkVersion="7" />

</manifest>

扩展学习

在上面的程序里,是以调用getRequestedOrientation()方法来判断单击按钮时,屏幕的显示方向虽然程序也可以进行判断,但以下方法可以适用在长宽比不一样的手机上。

 

/* 方法二:判断屏幕宽高比 */

final Display defaultDisplay =

getWindow().getWindowManager().getDefaultDisplay();

int h= defaultDisplay.getHeight();

int w = defaultDisplay.getWidth();

 

/* 此分辨率为按钮单击当下的分辨率 */

mTextView01.setText

(Integer.toString(h)+"x"+Integer.toString(w));

 

/if(w > h)

{

  /* Landscape */

  /* 重写Activity里的setRequestedOrientation()方法 */

  setRequestedOrientation

  (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

else

{

  /* Portrait */

  setRequestedOrientation

  (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}


    
最新技术文章:
▪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根据电话号码获得联系人头像实例代码 iis7站长之家
▪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