添加按钮:
<Button
android:layout_width="fill_parent"(可以用像素 dip,如100dip表示宽100像素,fill_parent为铺满,wrap_content为适应文本大小)
android:layout_height="wrap_content"
android:text="@string/continue_label"(/后的为变量名功能为按钮显示的名称,continue_label值在res/values/strings.xml里定义,为<stringname="continue_label">继续</string>)
/>
背景颜色:
android:background="@color/background"(变量background的值在res/values/color.xml里定义,为<colorname="background">#3500ffff</color>)
输入框:
<EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
方向:
android:orientation="vertical"(vertical为垂直,horizontal为水平)
对齐:
android:layout_gravity="center"(居中对齐)
字体大小:
android:textSize="24.5sp"
在JAVA代码中重新设置layout的参数:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, LayoutParams.WRAP_CONTENT);
//RelativeLayout代表当前要设置的layout的父layout类型;
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
btnNetworkHeadPortrait.setLayoutParams(params);
布局视图:
<Scrollview>(此为滚动视图)</Scrollview>
重写back键:
在@Override下方重写方法:publicvoid onBackPressed(){}
AndroidMainfest.xml中的主题使用:
android:theme="@android:style/Theme.Dialog"(对话模式主题)
重写menu键:
publicboolean onCreateOptionsMenu(Menumenu){ //使用菜单键
menu.add(0,0,0,R.string.menu_open); //第一个0是识别码,第二个0是id,第三个0是菜单顺序
return super.onCreateOptionsMenu(menu);
}
public booleanonOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case 0:
return true;
}
return super.onOptionsItemSelected(item);
}
创建新布局活动:
1、新建一个新的活动布局;
2、新建一个新的活动类;
3、在旧活动中以一个事件来启动新活动;(如点击某按钮)
启动新活动代码:Intent i=new Intent(this,newlayout.class);
startActivity(i);(要想在Android中启动某个活动,首先需要创建Intent类的实例)
4、在AndroidManifest.first.xml中的第一个活动的结束标记之后添加新的<activity>标记:
<activityandroid:name=".newlayout(新建的活动类)"
Android:label="@string/new_layout">
</activity>
连接网络:
去AndroidManifest.xml中 把
<uses-permission android:name="android.permission.INTERNET"></uses-permission>設定進xml中
自适应屏幕:
Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?
需要在res目录下创建不同的layout文件夹,layout-640x360,layout-800x480,ayout-854x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
隐藏状态栏与标题栏:
1、代码设置
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//隐去电池等图标和一切修饰部分(状态栏部分)
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// 隐去标题栏(程序的名字)
setContentView(new MyView(this));
2、设置 AndroidManifest.xml application 样式
android:theme="@android:style/Theme.NoTitleBar"隐去标题栏android:theme="@android:style/Theme.NoTitleBar.Fullscreen"隐去状态栏
横屏竖屏:
只需要在AndroidManifest.xml中对Activity属性进行设置
android:screenOrientation="landscape"表示始终横屏;
android:screenOrientation="portrait"表示始终竖屏;
Bitmap resource = BitmapFactory.decodeResource(this.getResources(), R.drawable.png);
Bitmap bitmap = Bitmap.createBitmap(resource, 0, 0, 100, 100);
其中R.drawable.png为图片,Bitmap.createBitmap方法中的五个参数意义分别为:
需要切割的图片资源(bitmap)、 切割起始点的X坐标、 切割起始点的Y坐标、 切割多宽、切割多高。
设置图片可见:
Img3.setVisibility(img3.VISIBLE);【不可见是INVISIBLE】
强制类型转换:
强制转换为String类型:String b=String.valueOf(a);
如double a=1.1;String b=String.valueOf(a);
String强制转换为int类型:String test=”123”;
int i=Integer.parseInt(test);
int强制转换为String类型:int x=1;
String test=Integer.toString(x);
Float转int:
float y = 1.5;
int yy=(int)y;//强制转换为int,yy=1;
String截取:
substring(int beginIndex)
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
substring(int beginIndex, int endIndex)
"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"
控制鼠标移动:
try {
Robot robot = new Robot();
for(int i=0;i<700;i++){
robot.delay(50);
robot.mouseMove(100,i);}
} catch (AWTException e) {
e.printStackTrace();
}}
Socket长连接:
一、
import java.net.*;
import java.io.*;
public class Jserver2{
private BufferedReaderreader; //负责输入
private ServerSocketserver; //服务器套接字
private Socket socket; //套接字
public Server2(){}//缺省构造函数
void startServer()//启动服务器
{
try
{
server=new ServerSocket(719); //创建服务器套接字
System.out.println("服务器套接字建立完毕");
while(true)
{
System.out.println("等待客户端GG");
socket=server.accept(); //若客户端GG提出连接请求,与socket连接
System.out.println("完成与客户端的连接");
reader=newBufferedReader(new InputStreamReader(socket.
getInputStream(),"UTF-8")); //获取socket输入流,“utf-8”
这个编码设置是为了更好显示中文
getMessage();//读取来自客户端的数据,并输出至画面上
}
}catch(Exception e)
{
System.out.println(e);
}finally{
try
{
if(server!=null)server.close();//关闭服务器套接字。
}catch(IOExceptionie){}
}
}
void getMessage()//读取来自套接字的信息
{
try
{
while(true) //循环
{
System.out.println("客户端GG说:"+reader.readLine());
}
}catch(Exception e){}
finally{
System.out.println("客户端中断连接");
try
{
if(reader!=null)reader.close(); //关闭套接字的输入流
if(socket!=null)socket.close();//关闭套接字
reader=null;
socket=null;
}catch(Exception e){}
}
}
public static voidmain(String[] args)
{
Server2 server=newServer2();
server.startServer();
}
}
//传过来的reader.readLine(),只能读取一次。
二、
import java.awt.AWTException;
import java.awt.Robot;
import java.io.*;
import java.net.*;
public class ATM {
public static void main(String[] args)throws IOException {
ServerSocket serversocket=null;
try{
serversocket=new ServerSocket(9999);
}
catch(IOException e){
System.err.println("Could not");
System.exit(1);
}
Socket clientsocket=null;
try{
System.out.println("等待");
clientsocket=serversocket.accept();
System.out.println("已连接");
}
catch(IOException e){
System.err.println("连接失败");
}
Parse p=new Parse(clientsocket);
p.run();
clientsocket.close();
serversocket.close();
}
}
class Parse extends Thread
{
private BufferedReaderin=null;
int x,y,xy=0;
String read;
boolean notclose=true;
Socket client=null;
public Parse(Socket client) {
this.client = client;
}
public void setnotclose(boolean n){
notclose=n;
}
@Override
public void run() { //新建一个线程
try{
while(notclose){ //一直监听才不会导致连接断开
in = new BufferedReader(new InputStreamReader(client.getInputStream(),"UTF-8"));
shubiao(in.readLine());
}
}
catch(Exception e){
}
}}
线程:class threadextends Thread
{
public thread() {
}
@Override
public void run() { }//新建一个线程
}
//开启线程:
thread t=new thread();
t.start();//必须用start才可开启线程,即开启run()方法。