android中细节效果总结

android中细节效果总结

andorid取消最上方的标题同时全屏显示

Source code    
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//取消最上方的标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.splash);
//全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

整个app取消标题

android:theme=”@android:style/Theme.Translucent.NoTitleBar”

获取版本号

Source code    
  1. private String getVersion() {
  2. try {
  3. // getPackageName()得到当前应用包名,当前应用的版本号通过包管理器得到
  4. PackageInfo info = getPackageManager().getPackageInfo(
  5. getPackageName(), 0);
  6. return info.versionName;
  7. } catch (Exception e) {
  8. e.printStackTrace();
  9. return "没得到";
  10. }
  11. }

淡入淡出动画效果

Source code    
  1. rl_splash_animation = (RelativeLayout) findViewById(R.id.rl_splash_animation);
  2. //从完全透明到完全不透明动画效果
  3. AlphaAnimation a = new AlphaAnimation(0.0f, 1.0f);
  4. a.setDuration(2000);//动画时间两秒钟
  5. rl_splash_animation.setAnimation(a);

弹出对话框,下面的代码,是一个升级提醒,仅供参考。

Source code    
  1. /**
  2. * 升级的对话框
  3. */
  4. private void showUpdataDialog() {
  5. AlertDialog.Builder buider = new Builder(this);
  6. buider.setIcon(R.drawable.icon5);
  7. buider.setTitle("升级提醒");
  8. buider.setMessage(info.getDescription());
  9. buider.setCancelable(false); // 让用户不能取消对话框
  10. buider.setPositiveButton("确定", new OnClickListener() {
  11. public void onClick(DialogInterface dialog, int which) {
  12. Log.i(TAG, "下载apk文件" + info.getApkurl());
  13. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
  14. DownLoadFileThreadTask task = new DownLoadFileThreadTask(info.getApkurl(), "/sdcard/new.apk");
  15. pd.show();
  16. new Thread(task).start();
  17. }else{
  18. Toast.makeText(getApplicationContext(), "sd卡不可用", 1).show();
  19. loadMainUI();
  20. }
  21. }
  22. });
  23. buider.setNegativeButton("取消", new OnClickListener() {
  24. public void onClick(DialogInterface dialog, int which) {
  25. Log.i(TAG, "用户取消进入程序主界面");
  26. loadMainUI();
  27. }
  28. });
  29. buider.create().show();
  30. }

从服务器是获取xml文件,然后解析的一个业务方法

首先传入id这个id是在values里边的一个xml配置文件的id里边是服务器xml文件的地址

然后通过

HttpURLConnection连接服务器,
InputStream is = conn.getInputStream();发送请求得到输入流
Source code    
  1. /**
  2. *
  3. * @param urlid 服务器路径string对应的id
  4. * @return 更新的信息
  5. */
  6. public UpdataInfo getUpdataInfo(int urlid) throws Exception{
  7. String path = context.getResources().getString(urlid);
  8. URL url = new URL(path);
  9. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  10. conn.setConnectTimeout(2000);
  11. conn.setRequestMethod("GET");
  12. InputStream is = conn.getInputStream();
  13. return UpdataInfoParser.getUpdataInfo(is);
  14. }

解析的xml的inputstream,传入xml文件的

inputstream流,读取里边的文件
Source code    
  1. /**
  2. *
  3. * @param is
  4. * 解析的xml的inputstream
  5. * @return updateinfo
  6. */
  7. public static UpdataInfo getUpdataInfo(InputStream is) throws Exception {
  8. XmlPullParser parser = Xml.newPullParser();
  9. UpdataInfo info = new UpdataInfo();
  10. parser.setInput(is, "utf-8");
  11. int type = parser.getEventType();//定位到文档的开始
  12. while (type != XmlPullParser.END_DOCUMENT) {//不到末尾
  13. switch (type) {
  14. case XmlPullParser.START_TAG:
  15. if("version".equals(parser.getName())){
  16. String version = parser.nextText();
  17. info.setVersion(version);
  18. }else if("description".equals(parser.getName())){
  19. String description = parser.nextText();
  20. info.setDescription(description);
  21. }else if("apkurl".equals(parser.getName())){
  22. String apkurl = parser.nextText();
  23. info.setApkurl(apkurl);
  24. }
  25. break;
  26. }
  27. type = parser.next();//向下
  28. }
  29. return info;
  30. }
Intent如何传值
Source code    
  1. 案例一
  2. 传值:
  3. Intent intent=new Intent();
  4. intent.putExtra("extra", "这是页面一传来的值!");
  5. intent.setClass(Test_for_intentActivity.this, actpage2.class);
  6. startActivity(intent);
  7. 取值:
  8. Intent intent=getIntent();
  9. String StringE=intent.getStringExtra("extra");
  10. TextView text2=(TextView)findViewById(R.id.textView2);
  11. text2.setText(StringE);
  12. 打开网页
  13. Uri uri = Uri.parse("http://www.google.com");
  14. Intent it = new Intent(Intent.ACTION_VIEW,uri);
  15. startActivity(it);
时间: 2024-10-29 19:08:49

android中细节效果总结的相关文章

谈谈-Android中的接口回调技术

Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James对Android接口回调技术的理解(结合前人的知识和自己的实践). 使用一个比喻很形象地说明:客户端有个疑问打电话请教服务端,但服务端无法现场给出解答,相互之间约定:服务端一旦有答案,使用电话的方式反馈给客户端. 以上有三个主体:客户端.服务端和接口(方式). 接口回调的原理框图说明: Demo界面

关于android中事件传递和分发的一些小理解

android中 当我们的手指触摸屏幕将产生一个事件, (假设 这个过程中如果没有显示的去拦截该事件的话)   这个事件会逐级传递到视图的最底层,即使在中间某些视图会响应这个事件( 这个视图也不会去消费这个事件),     仍然是会传递到底层(底层不响应该事件),然后再由底层回传到顶层,在传回顶层的过程中 ,   原先会响应该事件的视图才会去消费这个事件 例如在左图中                                 A                               

浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时

今天给大家带来的是仅仅使用一个TextView实现一个高仿京东.淘宝.唯品会等各种电商APP的活动倒计时.最近公司一直加班也没来得及时间去整理,今天难得休息想把这个分享给大家,只求共同学习,以及自己后续的复习.为什么会想到使用一个TextView来实现呢?因为最近公司在做一些优化的工作,其中就有一个倒计时样式,原来开发的这个控件的同事使用了多个TextView拼接在一起的,实现的代码冗余比较大,故此项目经理就说:小宏这个就交给你来优化了,并且还要保证有一定的扩展性,当时就懵逼了.不知道从何处开始

Android中监听ListView滑动到底部

Android中的应用就是ListView中向下滑动加载更多的功能,不要再onScroll方法中进行判断,那样当滑动到底部的时候,可能我们需要触发点什么事件,比如加载更多.隐藏某个控件等等. 第一种方法是直接滑动到底部就触发 listview.setOnScrollListener(new OnScrollListener(){       @Override       public void onScrollStateChanged(AbsListView view, int scrollS

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert

Android中微信抢红包插件原理解析和开发实现

一.前言 自从去年中微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导致了.或许是网络的原因,而且这个也是最大的原因.但是其他的不可忽略的因素也是要考虑到进去的,比如在手机充电锁屏的时候,我们并不知道有人已经开始发红包了,那么这时候也是让我们丧失了一大批红包的原因.那么关于网络的问题,我们开发者可能用相关技术无法解决(当然在Google和Facebook看来的话,他们

Android中View绘制流程以及invalidate()等相关方法分析

前言: 本文是我读<Android内核剖析>第13章----View工作原理总结而成的,在此膜拜下作者 .同时真挚地向渴望了解 Android 框架层的网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 . 整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根据之前设置的状态,判断是否需要重新计算视图大小(measure).是否重新需要安置视图的位置(layout).以及是否需要重绘 (d

Android中View的绘制过程 onMeasure方法简述

Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布局的根节点开始,从根节点开始测量和绘制整个layout tree. 每一个ViewGroup 负责要求它的每一个孩子被绘制,每一个View负责绘制自己. 因为整个树是按顺序遍历的,所以父节点会先被绘制,而兄弟节点会按照它们在树中出现的顺序被绘制. 绘制是一个两遍(two pass)的过程:一个mea