当前位置:操作系统 > 安卓/Android >>

Android开发小经验1

[html]
1. TextView中的getTextSize返回值是以像素(px)为单位的, 
而setTextSize()是以sp为单位的.
所以如果直接用返回的值来设置会出错,解决办法是
用setTextSize()的另外一种形式,可以指定单位:
[java]
<span style="font-size:16px;">setTextSize(int unit, int size) 
TypedValue.COMPLEX_UNIT_PX : Pixels 
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels 
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels</span> 
2. 在继承自View时,绘制bitmap时,需要将图片放到新建的drawable-xdpi
中,否则容易出现绘制大小发生改变

3. 在文字中加下划线: textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);

4. scrollView是继承自frameLayout,所以在使用LayoutParams时需要用frameLayout的

5.在Android中几种网络编程的方式:
(1)针对TCP/IP的Socket、ServerSocket
(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有    一点与普通互联网应用有所差异的。
(3)针对直接URL的HttpURLConnection
(4)Google集成了Apache HTTP客户端,可使用HTTP进行网络编程。针对HTTP,Google集成了Appache Http core和httpclient 4版本,因此特别注意Android不支持  httpclient 3.x系列,而且目前并不支持Multipart(MIME),需要自行添加httpmime.jar
(5)使用Web Service。Android可以通过开源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice
  (6) 直接使用WebView视图组件显示网页。基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

6.   TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
  这个是我们最常用的一个构造方法,
  float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;
  float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
  float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;
  float toYDelta)这个参数表示动画开始的点离当前View Y坐标上的差值;
  如果view在A(x,y)点 那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C 点   (x+toXDelta,y+toYDelta)点.

7.android提供了几种在其他线程中访问UI线程的方法。
Activity.runOnUiThread( Runnable )
View.post( Runnable )
View.postDelayed( Runnable, long )
Hanlder
AsyncTask(推荐使用)
[java]
从网上获取一个网页,在一个TextView中将其源代码显示出来 
package org.unique.async; 
import java.io.ByteArrayOutputStream; 
import java.io.InputStream; 
import java.util.ArrayList; 
 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.content.DialogInte易做图ce; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
 
public class NetworkActivity extends Activity{ 
    private TextView message; 
    private Button open; 
    private EditText url; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.network); 
       message= (TextView) findViewById(R.id.message); 
       url= (EditText) findViewById(R.id.url); 
       open= (Button) findViewById(R.id.open); 
       open.setOnClickListener(new View.OnClickListener() { 
           public void onClick(View arg0) { 
              connect(); 
           } 
       }); 
 
    } 
 
    private void connect() { 
        PageTask task = new PageTask(this); 
        task.execute(url.getText().toString()); 
    } 
 
    class PageTask extends AsyncTask<String, Integer, String> { 
        // 可变长的输入参数,与AsyncTask.exucute()对应 
        ProgressDialog pdialog; 
        public PageTask(Context context){ 
            pdialog = new ProgressDialog(context, 0);    
            pdialog.setButton("cancel", new DialogInte易做图ce.OnClickListener() { 
             public void onClick(DialogInte易做图ce dialog, int i) { 
              dialog.cancel(); 
             } 
            }); 
            pdialog.setOnCancelListener(new DialogInte易做图ce.OnCancelListener() { 
             public void onCancel(DialogInte易做图ce dialog) { 
              finish(); 
             } 
            }); 
            pdialog.setCancelable(true); 
            pdialog.setMax(100); 
            pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
            pdialog.show(); 
 
        } 
        @Override 
        protected String doInBackground(String... params) { 
 
            try{ 
 
               HttpClient client = new DefaultHttpClient(); 
               // params[0]代表连接的url 
               HttpGet get = new HttpGet(params[0]); 
               HttpResponse r

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,