Android学习之散乱的知识点
1.
安卓广告知名平台:有米,哇棒,架势,admob(国外,但效果不好)等,推荐用有米
2.
src目录为源文件目录,所有可以被用户修改和创建的Java文件将被存放在这个目录下
3.
xml中引用strings.xml
"@string/string_name"
在java文件中用
Activity.this.getString(R.string.resource_name)
4.
内容提供者主要用于不同程序之间进行数据共享。
5.
最好用onPause()方法来保存在停止与用户交互前更改的数据
6.
padding属性通常用来描述控件里面的内容与控件的关系
layout_margin通常用来描述控件之间的位置关系
7.
gravity用于设置该控件里的对齐方法
layout_gravity 用于设置控件 在父控件中的对齐方式
8.
最好用sp来描述文字
其他用dp
9.
在res/drawable/myimage.png位置保存了一张图片,在Layout XML中可以应用这个图片到一个View上:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
下面的代码可以以Drawable方式得到图片:
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.myimage);
10.
id值。
11.
Textview在多行情况下如何显示省略号。
12.
<merge/>用法
http://www.cnblogs.com/travelfromandroid/articles/2133206.html
13.
在该Activity的onCreate函数中添加控制代码:
this.requestWindowFeature(Window.FEATURE_NO_TITLE); //设置Activity标题不显示
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); //设置全屏显示
注意:这两句代码必须写在setContentView函数的前面,否则运行会报错。
14.
能用内置的适配器,就用内置的适配器,这样只需写好子布局就可以了。
//用Map
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
int length = itemName.length;
for (int i = 0; i < length; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImageView", imageRes[i]);
map.put("ItemTextView", itemName[i]);
data.add(map);
}
//为itme.xml添加适配器
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this,
data, R.layout.gv, new String[] { "ItemImageView","ItemTextView" }, new int[] { R.id.ItemImageView,R.id.ItemTextView });
grid.setAdapter(simpleAdapter);
15.
上下文要是Acitivity的话,可用getApplicationContext()来获得返回值
16.
Toast用法
简单版:
Toast toast = Toast.makeText(ToastDemoActivity.this, "这是一个普通的Toast!", Toast.LENGTH_SHORT);
//三个参数:上下文,显示字符串,时间(单位为ms)
toast.show();
//记得展现出来。
设置位置:
方法一:setGravity(int gravity, int xOffset, int yOffset)三个参数分别表示(起点位置,水平向右位移,垂直向下位移)
例子:.setGravity(Gravity.CENTER, 0, 0);
例子:.setGravity(Gravity.TOP | Gravity.LEFT, 0, 200);
方法二:setMargin(float horizontalMargin, float verticalMargin)
以横向和纵向的百分比设置显示位置,参数均为float类型(水平位移正右负左,竖直位移正上负下)
例子:.setMargin(-0.5f, 0f);
自定义版本:
http://blog.csdn.net/coolszy/article/details/6365825
1.添加一个布局文件,该布局文件的结构和Activity使用的布局文件结构一致(可以不一致),在该布局文件中我们需设计我们Toast的布局。
2.在这个地方要注意,我们给LinearLayout添加的id属性,在后面的把xml转换为view代码中我们需要使用到。在程序中,我们可以通过如下代码创建我们自己的Toast。
- 获取LayoutInflater对象,该对象能把XML文件转换为与之一直的View对象
- LayoutInflater inflater = getLayoutInflater();
- //根据指定的布局文件创建一个具有层级关系的View对象
- //第二个参数为View对象的根节点,即LinearLayout的ID
- View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));
- //查找ImageView控件
- //注意是在layout中查找
- ImageView image = (ImageView) layout.findViewById(R.id.image);
- image.setImageResource(R.drawable.head);
- TextView text = (TextView) layout.findViewById(R.id.text);
- text.setText("自定义Toast演示程序");
- Toast toast = new Toast(getApplicationContext());
- //设置Toast的位置
- toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
- toast.setDuration(Toast.LENGTH_LONG);
- //让Toast显示为我们自定义的样子
- toast.setView(layout); //重要之处
- toast.show();
17.
LinearLayout不能设置圆角背景。
18.
圆角:
设置边框圆角可以在drawable-mdpi目录里定义一个xml:
例:corner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#DAAA" />
<corners android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"/>
</shape>
如果想引用这个xml,只需要@drawable/corners_bg.xml即可:
android:background="@drawable/corner"
例子:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:padding="15dip" android:layout_margin="15dip"
android:background="@drawable/corner"
>
<ImageView android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="100dp"
android:layout_height="100dp"
android:textColor="#FFF"
android:gravity="center"
android:layout_toRightOf="@id/image"
/>
</RelativeLayout>
19.
布局大小控制技巧
android:layout_height="0dp" //或者宽度
android:layout_weight="1" //表示剩余布局的分配
20. web的使用。
xml中:
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
Java中:
webView=(WebView) findViewById(R.id.webView);
webView.loadUrl("Http://www.baidu.com");
要使网页真正加载在布局中,需要调用
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO 自动生成的方法存
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
更多方法:
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
// title为网页的标题
super.onReceivedTitle(view, title);
}
});
使用webView实现下载;
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
//实现下载的代码
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
});
如果访问的页面中有Javascript,则webview必须设置支持Javascript
webview.getSettings().setJavaScriptEnabled(true);
设置WevView要显示的网页:
互联网用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets文件中.可以加载404网页
另外还有其他一些可重写的方法
1,接收到Http请求的事件
onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm)
2,打开链接前的事件
public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }
这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
3,载入页面完成的事件
public void onPageFinished(WebView view, String url){ }
同样道理,我们知道一个页面载入完成,于是我们可以关闭loading条,切换程序动作。
4,载入页面开始的事件
public void onPageStarted(WebView view, String url, Bitmap favicon) { }
这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。
通过这几个事件,我们可以很轻松的控制程序操作,一边用着浏览器显示内容,一边监控着用户操作实现我们需要的各种显示方式,同时可以防止用户产生误操作。
按back返回上一个网页,重写Activity中的onKeyDown方法:
public boolean onKeyDown(int keyCoder,KeyEvent event){
if(webView.canGoBack() && keyCoder == KeyEvent.KEYCODE_BACK){
webview.goBack(); //goBack()表示返回webView的上一页面
return true;
}
return false;
}
使用内置浏览器加载网页:
- Uri uri = Uri.parse(url); //url为你要链接的地址
- Intent intent =new Intent(Intent.ACTION_VIEW, uri);
- startActivity(intent);
Webview与js交互:需要js方面的知识
mWebView.goBack(); //后退
mWebView.goForward();//前进
mWebView.reload(); //刷新
21.
比较常用就记录下来了
bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="@drawable/bottom_bar"
android:orientation="horizontal"
>
<LinearLayout
android:id="@+id/id_tab1"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
>
<ImageButton
android:layout_marginTop="5dp"
android:id="@+id/id_btn1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/return_img"
android:background="#00000000"
android:clickable="false"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/id_tab2"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="3"
android:gravity="center"
android:orientation="vertical"
>
<TextView
android:id="@+id/tvTitle"
android:text="Home"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="#ffffff"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/id_tab3"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
>
<ImageButton
android:layout_marginTop="5dp"
android:id="@+id/id_btn3"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/refresh_img"
android:background="#00000000"
android:clickable="false"
/>
</LinearLayout>
</LinearLayout>
引用:<include layout="@layout/bottom"/>
22.
top.xml
<?xml version="1.0" encoding="utf-8"?>
<RelateLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@drawable/title_bg"
>
<ImageButton
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:src="@drawable/return_img"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="R"
android:textColor="#ffffff"
android:textSize="20sp"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center"
android:layout_weight="1"
/>
</RelateLayout>
引用:<include layout="@layout/top"/>
23.
自定义PogresBar进度条(网页进度条)
主布局文件中:
<ProgressBar
android:id="@+id/pb"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="3dip"
android:indeterminateOnly="false"
android:max="100"
android:progressDrawable="@drawable/progress_bar_states" >
</ProgressBar>
接下来就是progress_bar_states
各种状态的设置
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<gradient
android:startColor="#ffffff"
android:centerColor="#ffffff"
android:endColor="#ffffff"
/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<gradient
android:startColor="#234"
android:centerColor="#234"
android:endColor="#a24"
/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient
android:startColor="#33000001"
android:centerColor="#40000000"
android:endColor="#44000000"
/>
</shape>
</clip>
</item>
</layer-list>
24.
Android学习之散乱的知识点的更多相关文章
- Android学习路线总结,绝对干货
title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...
- Android 学习资料收集
收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, ...
- 十一、Android学习第十天——项目开始(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- android学习日记0--开发需要掌握的技能
一.开发android,我们需要哪些技能基础 1.Java基础知识 2.Linux基础知识 3.数据库基础知识 4.网络协议 5.Android基础知识 6.服务器端开发知识 1.Java基础知识 很 ...
- Android学习之路——简易版微信为例(二)
1 概述 从这篇博文开始,正式进入简易版微信的开发.深入学习前,想谈谈个人对Android程序开发一些理解,不一定正确,只是自己的一点想法.Android程序开发不像我们在大学时候写C控制台程序那样, ...
- Android学习路线(二十四)ActionBar Fragment运用最佳实践
转载请注明出处:http://blog.csdn.net/sweetvvck/article/details/38645297 通过前面的几篇博客.大家看到了Google是怎样解释action bar ...
- 我的Android学习之旅(转)
去年大概在七月份的时候误打误撞接触了一阵子Android,之后由于工作时间比较忙,无暇顾及,九月份的时候自己空闲的时间比较多,公司相对来说加班情况没以前严重.开启了个人的Android学习之旅,初衷是 ...
随机推荐
- The method onClick(View) of type new View.OnClickListener(){} must override a superclass
最近在做一个jWebSocket Android客户端的Demo时遇到如下错误: ok —————— 最近在做一个jWebSocket Android客户端的Demo时遇到如下错误: ".. ...
- angularjs ngRoute demo
<!doctype html> <html lang="en" ng-app="AMail"> <head> <met ...
- android 四种堆状态
总结下: ====> 建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型 http://www.cnblogs.com/ghj1976/a ...
- 局域网聊天软件(winsocket)
LANChat工作整理 2013/8/22 程序实现功能: 局域网聊天软件,启动即可找到在线设备,并能够进行简单的文字聊天. 其实下面这个框图已经说明了程序的绝大部分功能原理. 核心类的程序框图 我觉 ...
- js调用高德API获取所在当前城市
可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript"> function getCurre ...
- javascirpt历史澄清误解基本概念特点编程语言web2.0网页javascript - javascirpt知识大全
目录1历史 2澄清误解 3基本概念 4特点 5与Java的不同 6开发工具 历史 大概在1992年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚 ...
- c语言宏定义
一. #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时 ...
- window-messager(消息框)
所有的消息框都是异步的.用户可以在交互消息之后使用回调函数去处理结果或做一些自己需要处理的事情. 一.alert(警告框) <script type="text/javascript& ...
- android开发找不到模拟器(PANIC: Could not open:)解决办法
android开发找不到模拟器(PANIC: Could not open:)解决办法 2013/4/3 17:44:15 0人评论 213次浏览 分类:android开发 在系统环境变量设置名为 ...
- 【第七篇】bootstrap的3级菜单样式,支持母版页保留打开状态
razor视图的,母版页 依旧不多说,直接上代码 <ul class="sidebar-menu"> @for (int i = 0; i < mList.Cou ...