0.永远记住:代码不会无故出错! 1.水平不行,就该骂! 2当你没有价值的时候,就没有了话语权!
1.给控件设置焦点
tvTitle.setFocusable(true);
tvTitle.setFocusableInTouchMode(true);
tvTitle.requestFocus();
tvTitle.requestFocusFromTouch();
2.TextView超出部分末尾用"..."代替
android:singleLine="true"
android:ellipsize="end"
3.圆形背景
在res/drawable文件件中新建***.xml文件 内容如下:
然后在控件中引用背景
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
android:useLevel="false" >
<solid android:color="#F05F4C" />
<padding
android:left="2dp"
android:top="1dp"
android:right="2dp"
android:bottom="1dp" />
<solid
android:color="#F05F4C" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
<size android:width="15dp"
android:height="15dp" />
</shape>
4.从当前Activity获得根视图
getWindow().getDecorView()就是根视图了,当然用Activity.getWindow.getDecorView()来表达意思更为明确。
5.动态设置android:drawableLeft|Right|Top|Bottom
Drawable img;
Resources res = getResources();
img = res.getDrawable(imgPath);
//调用setCompoundDrawables时,必须调用Drawable.setBounds()方法,否则图片不显示
img.setBounds(0, 0, img.getMinimumWidth(), img.getMinimumHeight());
TextView tv;
tv.setCompoundDrawables(img, null, null, null); //设置左图标
6.ImageView图像不拉伸
在ImageView控件布局代码中,加入下面这一句属性
android:scaleType="center"
7.获取手机分辨率
// 获取屏幕分辨率
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int mScreenWidth = dm.widthPixels;
int mScreenHeight = dm.heightPixels;
System.out.println("该手机高度为:" + mScreenHeight + "像素 宽度为:" + mScreenWidth + "像素");
8.Color工具类 parseColor
btn.setBackgroundColor(Color.parseColor("#87CEFA"));
9.Eclipse不自动生成R文件
前提是确定项目没有错误:打开Eclipse - 工具栏 - Project - Clean... - Clean projects selected below - OK.10.图片加载
a.在AndroidManifest.xml文件里添加联网权限:
<uses-permission android:name="android.permission.INTERNET" /> <!-- 联网权限 -->
b.在代码中使用Picasso.jar (
Picasso官网 、
Picasso下载) 显示图片:
Context mContext = this ; //获取context
ImageView iv = (ImageView) findViewById(R.id.iv);//初始化控件
Picasso.with(mContext).load("http://i.imgur.com/DvpvklR.png").into(iv);//用Picasso.jar将图片显示到控件上
11.返回View
//返回ViewPager每个view
private View initPagerItem(String url) {
LayoutInflater mLayoutInflater = null;
View layout1 = mLayoutInflater.inflate(R.layout.tuijian_header, null);
ImageView imageView1 = (ImageView) layout1.findViewById(R.id.tuijian_header_img);
ImageLoader.getInstance().displayImage(url,imageView1 ,ImageLoaderEffect.effect());
return layout1;
}
12.dp、px单位转换 //根据手机的分辨率从 dp 的单位 转成为 px(像素)
public static int dpToPx(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
//根据手机的分辨率从 px(像素) 的单位 转成为 dp
public static int pxToDp(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
13.一个字符串中是否包含某个字符
if("你好 Android".contains("Android")){
System.out.println("你好Android中包含Android字符");
}
14.异常处理机制
try{
//代码区
}catch(Exception e){
//异常处理
}
15.ScrollView置顶
mScrollView.smoothScrollTo(0, 0);
16.动态设置控件属性
17.移除listview的某一个item
UserHomePageActivity.listItem.remove(position);//删除此条数据
this.notifyDataSetChanged();//通知适配器数据源改变
在自定义适配器里调用remove()方法,删除数据源中item对应的这条数据;然后再this.notifyDataSetChanged();通知适配器数据源改变;这样就达到了删除一条itm的目的
18.生成随机数
Random random = new Random();
int i = random.nextInt(10);//随机生成0-9的随机数
19.几秒钟后跳过
//5秒后跳转转Activity
private void justLuckResult(){
final Intent mIntent = new Intent(this, Activity1.class); //你要转向的Activity
Timer mTimer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
startActivity(mIntent); //执行
}
};
mTimer.schedule(task, 1000 * 5); //5秒后
}
20.将16进制颜色转换为int型
int color = Color.parseColor("#FE555A")
21.Dialog点击周边不消失
dialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失
22.TextView上下滑动
android:scrollbars="vertical"//布局文件:设置滚动条的垂直显示
android:fadeScrollbars="false"//布局文件:设置滚动条是否一直存在
textView.setMovementMethod(ScrollingMovementMethod.getInstance());//代码中设置
23.获取View
View view= LayoutInflater.from(mContext).inflate(R.layout.activity_main, null);
24.获取音频文件时长
private int getAmrDuration(String path) {
try {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();//缓冲
int duration = mediaPlayer.getDuration() / 1000;
mediaPlayer.release();
mediaPlayer = null;
return duration;
} catch (Exception e) {
return 0;
}
}
两个ArrayList<Object>交换数据
错误:studentSeats = studentSeatsNode;
正确如下:
studentSeats = (ArrayList)studentSeatsNode.clone();
获取当前应用是否是Debug模式:
public static boolean isApkDebugable(Context context) {
try {
ApplicationInfo info = context.getApplicationInfo();
return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
} catch (Exception e) {
}
return false;
}