android 学习知识点累计

1.popupwindow的使用:

 View popunwindwow_layout = mLayoutInflater.inflate( 
                                    R.layout.popupwindow_layout, null); 
 mPopupWindow = new PopupWindow(popunwindwow_layout, LayoutParams.FILL_PARENT, 
                                    LayoutParams.FILL_PARENT);
 mPopupWindow.showAtLocation( mLayoutInflater.inflate( 
                                    R.layout.main, null), Gravity.CENTER, 0, 0);

mPopupWindow.dismiss();//让弹出窗口不可见

mPopupWindow.isShowing();//判断弹出窗口是否在显示状态

2.启动本地的gallery浏览图片:

Intent mIntent = new Intent(Intent.ACTION_GET_CONTENT);

            mIntent.addCategory(Intent.CATEGORY_OPENABLE);

            mIntent.setType("image/*");

            startActivityForResult(mIntent, ACTIVITY_GET_IMAGE);

3.启动本地的照相机:

if (existSDcard()) {
                Intent intent = new Intent();
                intent.setAction("android.media.action.IMAGE_CAPTURE");
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
                        SD_CARD_TEMP_PHOTO_PATH)));
                startActivityForResult(intent, ACTIVITY_TAKE_PHOTO);
            }

 

4.获取外部存储路径的方法:

android.os.Environment.getExternalStorageState().equals(
                android.os.Environment.MEDIA_MOUNTED)判断是否有外部存储,

获取,

android.os.Environment.getExternalStorageDirectory()

5.ListView 设置其滑动时背景为透明的,某一项被选中时的颜色:


        <ListView android:id="@+id/orderlist" android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:dividerHeight="0dip"//去掉分割线
            android:divider="#FFCC00"
            android:clickable="false"
            android:listSelector="#00000000"//设置item被选中时的颜色
            android:cacheColorHint="#00000000"//设置list滑动时的颜色
            />

6

 

/**


* 为程序创建桌面快捷方式

*/

private
void addShortcut(){

Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");


//快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

shortcut.putExtra("duplicate", false); //不允许重复创建

//指定当前的Activity为快捷方式启动的对象: //com.everest.video.VideoPlayer

//注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序

ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));

//快捷方式的图标

ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

sendBroadcast(shortcut);

}

 

/**

* 删除程序的快捷方式

*/

private
void delShortcut(){

Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");

//快捷方式的名称

shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));

//指定当前的Activity为快捷方式启动的对象: //com.everest.video.VideoPlayer

//注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式

String appClass = this.getPackageName() + "." +this.getLocalClassName();

ComponentName comp = new ComponentName(this.getPackageName(), appClass);

shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));

sendBroadcast(shortcut);

}

 

全屏显示

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

横竖屏显示

private
void changedScreen(){

int request = this.getRequestedOrientation();

if(request == -1){

Toast.makeText(TaskRunActivity.this, "None 1", Toast.LENGTH_SHORT).show();

}else{

if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}else
if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

}

}

 

获取手机分辩率

DisplayMetrics dm = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);

int width = dm.widthPixels;

int height = dm.heightPixels;

图形用户界面
文本框(TextView)
列表(ListView)
卷轴视图(ScrollView)
编辑框(EditText)
按钮(Button)
下载列表(Spinner)
多项选择(CheckBok)
图形用户界面
菜单(Menu)
提示(toast)
对话框(Dialog)
日期(DatePicker)
时间(TimePicker)
单项选择(RadioGroup RadioButton)
图形用户界面
线性布局(LinearLayout)
相对布局(RelativeLayout)
绝对布局(AbsoluteLayout)
表格布局(TableLayout)
数据据存储
系统偏好
文件
网络
数据库


                                                                                                                                                                                                          显示网页:
  1. Uri uri = Uri.parse("http://www.google.com");
  2. Intent it = new Intent(Intent.ACTION_VIEW,uri);
  3. startActivity(it);
显示地图:
  1. Uri uri = Uri.parse("geo:38.899533,-77.036476");
  2. Intent it = new Intent(Intent.Action_VIEW,uri);
  3. startActivity(it);
路径规划:
  1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
  2. Intent it = new Intent(Intent.ACTION_VIEW,URI);
  3. startActivity(it);
拨打电话:
调用拨号程序
  1. Uri uri = Uri.parse("tel:xxxxxx");
  2. Intent it = new Intent(Intent.ACTION_DIAL, uri);   
  3. startActivity(it);   
  1. Uri uri = Uri.parse("tel.xxxxxx");
  2. Intent it =new Intent(Intent.ACTION_CALL,uri);
  3. 要使用这个必须在配置文件中加入<uses-permission id="Android.permission.CALL_PHONE" />
发送SMS/MMS
调用发送短信的程序
  1. Intent it = new Intent(Intent.ACTION_VIEW);
  2. it.putExtra("sms_body", "The SMS text");
  3. it.setType("vnd.android-dir/mms-sms");
  4. startActivity(it);   
发送短信
  1. Uri uri = Uri.parse("smsto:0800000123");
  2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  3. it.putExtra("sms_body", "The SMS text");
  4. startActivity(it);   
发送彩信
  1. Uri uri = Uri.parse("content://media/external/images/media/23");
  2. Intent it = new Intent(Intent.ACTION_SEND);
  3. it.putExtra("sms_body", "some text");
  4. it.putExtra(Intent.EXTRA_STREAM, uri);
  5. it.setType("image/png");
  6. startActivity(it);
发送Email
  1.
  2. Uri uri = Uri.parse("mailto:xxx@abc.com");
  3. Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  4. startActivity(it);
  1. Intent it = new Intent(Intent.ACTION_SEND);
  2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");
  3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  4. it.setType("text/plain");
  5. startActivity(Intent.createChooser(it, "Choose Email Client"));   
  1. Intent it=new Intent(Intent.ACTION_SEND);   
  2. String[] tos={"me@abc.com"};   
  3. String[] ccs={"you@abc.com"};   
  4. it.putExtra(Intent.EXTRA_EMAIL, tos);   
  5. it.putExtra(Intent.EXTRA_CC, ccs);   
  6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
  7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
  8. it.setType("message/rfc822");   
  9. startActivity(Intent.createChooser(it, "Choose Email Client"));
添加附件
  1. Intent it = new Intent(Intent.ACTION_SEND);
  2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  3. it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/mysong.mp3[/url]");
  4. sendIntent.setType("audio/mp3");
  5. startActivity(Intent.createChooser(it, "Choose Email Client"));
播放多媒体
  1.   
  2. Intent it = new Intent(Intent.ACTION_VIEW);
  3. Uri uri = Uri.parse("[url=]file:///sdcard/song.mp3[/url]");
  4. it.setDataAndType(uri, "audio/mp3");
  5. startActivity(it);
  1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
  2. Intent it = new Intent(Intent.ACTION_VIEW, uri);
  3. startActivity(it);   
Uninstall 程序
  1. Uri uri = Uri.fromParts("package", strPackageName, null);
  2. Intent it = new Intent(Intent.ACTION_DELETE, uri);
  3. startActivity(it);
//调用相册
public static final String MIME_TYPE_IMAGE_JPEG = "image/*";
public static final int ACTIVITY_GET_IMAGE = 0;
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType(MIME_TYPE_IMAGE_JPEG);
startActivityForResult(getImage, ACTIVITY_GET_IMAGE);
//调用系统相机应用程序,并存储拍下来的照片
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
time = Calendar.getInstance().getTimeInMillis();
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment
.getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg")));
startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);
uninstall apk
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);
install apk
Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
play audio
Uri playUri = Uri.parse("[url=]file:///sdcard/download/everything.mp3[/url]");
returnIt = new Intent(Intent.ACTION_VIEW, playUri);
//发送附件
Intent it = new Intent(Intent.ACTION_SEND);   
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/eoe.mp3[/url]");   
sendIntent.setType("audio/mp3");   
startActivity(Intent.createChooser(it, "Choose Email Client"));
//搜索应用
Uri uri = Uri.parse("market://search?q=pname:pkg_name");   
Intent it = new Intent(Intent.ACTION_VIEW, uri);   
startActivity(it);   
//where pkg_name is the full package path for an application
//进入联系人页面
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(People.CONTENT_URI);
startActivity(intent);
//查看指定联系人
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(personUri);
startActivity(intent);
                                
                                                                                                        
                        
                                                         
                                                                                                                                                                                                                 
在进行Android开发的过程中,免不了,要开发TCP/UDP通讯的程序,下面这两段代码,分别介绍了TCP/UCP通过的一个实例:
代码一:

private void tcpdata() {
  try {
   Socket s = new Socket("192.168.0.25", 65500);
   // outgoing stream redirect to socket
   OutputStream out = s.getOutputStream();
   // 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush()
   PrintWriter output = new PrintWriter(out, true);

   output.println("Hello IdeasAndroid! 伪IP为:"
     + SIMCardToIP("13512345006"));

   InputStream inputStream = s.getInputStream();

   DataInputStream input = new DataInputStream(inputStream);

   byte[] b = new byte[10000];

   int length = input.read(b);

   inputReader = new InputStreamReader(inputStream);

   String Msg = new String(b, 0, length, "gb2312");

   Toast.makeText(TcpTest.this, Msg, 1000).show();

   Log.d("Tcp Demo", "message From Server:" + Msg);
   s.close();

  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
}
下面的代码是UDP通讯的过程:
public String send(String msg) {
  StringBuilder sb = new StringBuilder();
  InetAddress local = null;
  try {
   local = InetAddress.getByName("192.168.0.25"); // 本机测试
  
  } catch (UnknownHostException e) {
   
   e.printStackTrace();
  }
  try {
   dSocket = new DatagramSocket(); // 注意此处要先在配置文件里设置权限,否则会抛权限不足的异常
   
  } catch (SocketException e) {
   e.printStackTrace();
   
  }
  int msg_len = msg == null ? 0 : msg.length();
  DatagramPacket dPacket = new DatagramPacket(msg.getBytes(), msg_len,
    local, SERVER_PORT);
  try {
   dSocket.send(dPacket);
   
  } catch (IOException e) {
   e.printStackTrace();
   
  }
  try {  
   dSocket.receive(dPacket);
   sb.append(new String(dPacket.getData()));
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  dSocket.close();
  return sb.toString();

 

 

在xml中

android:ellipsize = "end"    省略号在结尾

android:ellipsize = "start"   省略号在开头

android:ellipsize = "middle"     省略号在中间

android:ellipsize = "marquee"  跑马灯

最好加一个约束android:singleline = "true"

 

 

如果你想你的service在系统开机时自启动。可以在service的androidManifest.xml中加上这样的配置。

<receiver android:name=".StartBroadcastReceiver">

 

 

            <intent-filter>

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

            </intent-filter>        

</receiver>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值