【pdf】Android_UI开发专题

来自 eoe社区

下载链接 http://www.kuaipan.cn/index.php?ac=file&oid=20032934354355771

Android软件汉化 APK软件汉化

来源:http://www.uugo.org/project/Android/71096.html

在Android平台下,程序文件的后缀名为“.APK”,APK是Android Package的缩写,意思是Android安装包,是类似WM系统“.CAB”和Symbian系统“.SIS”的文件格式。APK程序文件可以用WinRAR之类的解压缩软件解压,我们只需要将其中的resources.arsc文件解压出来,用汉化工具将.arsc文件内的英文资源翻译为中文,修改包含英文的图片,再替换原文件,最后将APK文件重新签名即可。

汉化APK软件需要事先下载安装好以下工具:

1.Java
2.解压缩软件:WinRAR
3.汉化工具:AndroidResEdit(需要.NET Framework 2.0支持)

下载AndroidResEdit


4.图片汉化软件:Photoshop
5.签名程序:Auto-sign(推荐使用AndroidResEdit软件自带的签名功能)

 

android service 的交互

这个例子演示了activity调用本地服务,点击按钮就会显示结果 

源码下载

 

结果:

步骤如下:

1 创建服务接口

服务接口提供了可以调用的方法

IService.java

 

package com.demo.service;

public interface IService {
	public String getName();
}

2 实现服务

myService.java

 

package com.demo.service;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;

public class myService extends Service {

	/*
	 * binder 起到个桥梁的作用,
	 */
	private MyServiceBinder myServiceBinder = new MyServiceBinder();  
	
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return myServiceBinder;
	}

	public String getName(){
		return "你好啊 返回的结果";
	}
	
	public class MyServiceBinder extends Binder implements IService{

		public String getName() {
			// TODO Auto-generated method stub
			return myService.this.getName();
		}
		
	}
}

3 调用服务的activity

mainActivity.java

 

package com.demo.service;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

/*
 * service 的交互
 */
public class mainActivity extends Activity {
    /** Called when the activity is first created. */
	
	private myConn conn=new myConn();
	private IService serviceInstance;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Intent intent = new Intent(this, myService.class);
        /*
         * 激活服务 会调用 myConn 返回桥梁 serviceImpl
         */
        bindService(intent, conn, Context.BIND_AUTO_CREATE);
        
         final TextView nameTextView = (TextView) findViewById(R.id.name);
        this.findViewById(R.id.button).setOnClickListener(new OnClickListener() {
			
			public void onClick(View arg0) {
				//点击时调用服务中的方法
				String nameString = serviceInstance.getName();
				nameTextView.setText(nameString);
			}
		});
        
    }
    
    private final class myConn implements ServiceConnection{

    	/*
    	 * (non-Javadoc)
    	 * @see android.content.ServiceConnection#onServiceConnected(android.content.ComponentName, android.os.IBinder)
    	 * 这个IBinder 是 myServece中的返回的IBinder
    	 */
		public void onServiceConnected(ComponentName name, IBinder service) {
			serviceInstance = (IService) service;
			
		}

		public void onServiceDisconnected(ComponentName name) {
			serviceInstance=null;
			
		}
    	
    }
    
    @Override
    protected void onDestroy() {
    	//退出时 解除绑定
    	unbindService(conn);
    	super.onDestroy();
    }
}

 

 

D-PAD按键处理以及拖动--onKeyDown、onTouch 事件与Layout坐标交互

 

当用户点击D-pad上的上、下、左、右四个方向键或者拖动 test按钮时,会直接更改在Layout上的绝对坐标
效果如下:
 
 
 
 
主要代码: