@TryIT
2014-11-22T02:14:09.000000Z
字数 9201
阅读 1089
android
1.
AsyncTask执行顺序:
execute
方法之后onPreExecute
方法doInBackground
方法(Integer参数对应AsyncTask中的第一个参数,这里的String返回值对应AsyncTask的第三个参数
),异步操作,进行下载等操作。 publishProgress
方法触发onProgressUpdate
(调用publishProgress方法触发onProgressUpdate对UI进行操作)对UI
进行操作2.
动态设置TextView的width不起作用:
final LayoutParams lp = mLrcTextShadow.getLayoutParams();
width += 5;
lp.width = width;
mLrcTextShadow.setLayoutParams(lp);
关键是重新设置LayoutParams,获取LayoutParams可以放到循环之外,先设置width,然后再设置一下就可以了
3.
setBounds(x,y,width,height); 4.
setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds的使用 Drawable
left, Drawable top, Drawable right, Drawable bottom) 上、下、左、右
设置图标
,如果不想在某个地方显示,则设置为null
getIntrinsicWidth
和getIntrinsicHeight
获取 Drawable
必须已经setBounds(Rect)
即:添加的资源必须已经设置过初始位置、宽和高
等信息 可以自定义资源的宽和高
,而不是资源立即导入 Resources res = TabTest.this.getResources();
Drawable myImage = res.getDrawable(R.drawable.home);
myImage.setBounds(1, 1, 100, 100);
button.setCompoundDrawables(null, myImage, null, null);
5.对资源的理解:
Drawable myIconBg = getResources().getDrawable(iconResId);
Rect mRect=myIconBg.getBounds();
Log.d("tagWidth", mRect.width()+"");
一旦变成了资源,图标本身的高和宽都是为0,已经浓缩成一点了
6.
获取手机的屏幕尺寸--DisplayMetrics浅析 WindowManager
获取--此方法要放在oncreate()
方法上 Display display = getWindowManager().getDefaultDisplay();
System.out.println("width-display :" + display.getWidth());
System.out.println("heigth-display :" + display.getHeight());
安卓4.2系统
中,使用方法一
得到了正确的屏幕尺寸值
,而使用方法二和三
得到的值全部为零
。原因不祥。其中方法三
中的display.getWidth()
和display.getHeight()
已被弃用
。7.
DisplayMetrics和Display的关系 8.
尺寸资源的对应关系
Android手机屏幕标准 对应图标尺寸标准 屏幕密度
xhdpi 124*600 96*96 320
hdpi 480*800 72*72 240
mdpi 480*320 48*48 160
ldpi 320*240 36*36 120
9.
layoutParams的使用
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
//调用addView()方法增加一个TextView到线性布局中
mLayout.addView(textView, p);
上面的代码,相等于下面的xml的布局:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View"/>
所以--通过LayoutParams来设置大小,已经相对位置等:
LayoutParams
相当于一个Layout
的信息包,它封装了Layout的位置、高、宽等信息
。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout
用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams
类也只是简单的描述了宽高,宽和高
都可以设置成三种值
:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
10.
ScrollView和HorizontalScrollView
两者都是android.view.ViewGroup->android.FrameLayout
的子类,不同在于,一个垂直滚动
显示内容,一个水平滚动
显示内容。
首先我们定义一个ScrollView
,因为ScrollView
也是一个ViewGroup
,所以我们可以直接使用ScrollView作为我们的xml文件的根元素
:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="false">
<LinearLayout
android:id="@+id/layout"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:orientation="vertical"/>
</ScrollView>
我们看到,在ScrollView
元素下面我们还给其定义了一个LinearLayout
,并且设置了其方向为垂直方向
的线性布局。我们添加图片的操作放在了代码中来完成。下面来看一下ScrollViewActivity这个类:
public class ScrollViewActivity extends Activity
{
private LinearLayout layout;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_scrollview);
layout = (LinearLayout) findViewById(R.id.layout);
for(int i = 0; i < 8; i++)
{
// 通过资源文件来获得指定一个Drawable对象
Drawable drawable = getResources().getDrawable(R.drawable.kk_hero);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(drawable);
layout.addView(imageView);
}
}
}
11.
FragmentPagerAdapter的使用12.
硬件加速:android:hardwareAccelerated=true
硬件加速
并不支持所有2D画
的操作,所以开启硬件加速可能会对使用自定义组件
的应用程序造成影响
button
的点击
xml
文件中调用 Activity
的方法:onSaveInstanceState()
的功能以及触发时机 fill_parent
、wrap_content
和match_parent
的区别 visibility
属性VISIBLE
、INVISIBLE
、GONE
的区别 可见
,不可见
,隐藏
Fragment
之间的切换,跳转: AndoridManifest.xml
里设置东西MainFragment
的布局文件xml
下: framelayout
的布局下添加 fragment
,主MainFragment
里面加入<FragmentLayout />让fragment1,fragment2
进行切换漏洞
,详情:FragmentTransaction的commit和commitAllowingStateLoss的区别启动
一个Service的过程如下: onCreate()
可以进行一些服务的初始化工作
,onStart()
则启动服务
。停止
一个Service的过程如下: Android
的string-array
数据源简单使用: values
文件夹的arrays.xml
文件里 string-array name="city"
下的所有item数据,简单又方便的一种方法。gridview
的onItemClick(AdapterView<?> arg0, View view, int position,long arg3)
方法 AdapterView<?> parent,
View view,
int position,
long id
android:focusableInTouchMode
---可以通过touch来获得focus android:textCursorDrawable="@null"
,"@null"作用
是让光标颜色和text color一样
select
选择器 Item
顺序是有讲究的,条件限定越细致,当item已经满足条件返回
。可以理解为代码中的if,else if,else语句
。去除默认样式
位置,用@null,例如: android:textAlignment
— 该属性设置文字的对齐方式 android:gravity:center
--字体居中。 长度后,才有效果
,比如:android:layout_width="fill_parent" LayoutParams
) Eclipse
自动生成lint.xml
文件,介绍:Android Lint简介