吴小龙同學

党要我帅,我不得不帅!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Fragment里更改Activity菜单

发表于 2015-06-10 | 分类于 Fragment
1
2
3
4
5
6
7
8
9
10
11
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//来指出fragment愿意添加item到选项菜单(否则, fragment将接收不到对 onCreateOptionsMenu()的调用)
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
getActivity().getMenuInflater().inflate(R.menu.menu_yuqing_search, menu);
}

Android判断权限被限制

发表于 2015-06-10 | 分类于 Android

开发过程,如果某个权限被第三方限制了,比如录音,网上查了下

1
2
3
4
5
6
String permName = "android.permission.RECORD_AUDIO";
String pkgName = getPackageName();
// 结果为0则表示使用了该权限,-1则表求没有使用该权限
int reslut = getPackageManager().checkPermission(permName, pkgName);
Log.d("wxl", "reslut=" + reslut + "======"
+ PackageManager.PERMISSION_GRANTED);

实际这个方法只是检测你的APP是否使用了某个权限,但是不能检测是否被限制了。

阅读全文 »

Android之LayoutParams

发表于 2015-05-28 | 分类于 Android

LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。

但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:

1,一个确定的值;

2,FILL_PARENT,即填满(和父容器一样大小);

3,WRAP_CONTENT,即包裹住组件就好。

阅读全文 »

Android studio share项目到svn仓库

发表于 2015-05-25 | 分类于 Android Studio

import into SVN

忽略文件

Android Studio 中建议过滤的文件:

.idea 文件夹

.gradle 文件夹

所有的 build 文件夹

所有的 .iml 文件

local.properties 文件

Android studio已经自动生成了git的忽略文件,如图:

阅读全文 »

广告基金

发表于 2015-05-12 | 分类于 Life

我很想买mac,但是暂时经济紧张,于是心里想,今年我的广告费什么时候攒够了,就买。求赞助,求包养T_T


收益截图

广告总收益:22563.65+1933.53=24497.18(另外还有芒果聚合、点乐积分、多盟,都太少了,这里不计)

android获取 res 中的资源

发表于 2015-04-30 | 分类于 Android

如何获取 res 中的资源

数据包package:android.content.res

主要类:Resources

其主要接口按照功能,划分为以下三部分:

getXXXX()

阅读全文 »

Android之LoadMoreListView

发表于 2015-04-28 | 分类于 ListView

java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/**
* Android load more ListView when scroll down.
*
* @author Charon Chui
*/
public class LoadMoreListView extends ListView {
protected static final String TAG = "LoadMoreListView";
private View mFooterView;
private OnScrollListener mOnScrollListener;
private OnLoadMoreListener mOnLoadMoreListener;
/**
* If is loading now.
*/
private boolean mIsLoading;
private int mCurrentScrollState;
public LoadMoreListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
public LoadMoreListView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public LoadMoreListView(Context context) {
super(context);
init(context);
}
private void init(Context context) {
mFooterView = View.inflate(context, R.layout.load_more_footer, null);
addFooterView(mFooterView);
hideFooterView();
/*
* Must use super.setOnScrollListener() here to avoid override when call
* this view's setOnScrollListener method
*/
super.setOnScrollListener(superOnScrollListener);
}
/**
* Hide the load more view(footer view)
*/
private void hideFooterView() {
mFooterView.setVisibility(View.GONE);
}
/**
* Show load more view
*/
private void showFooterView() {
mFooterView.setVisibility(View.VISIBLE);
}
@Override
public void setOnScrollListener(OnScrollListener l) {
mOnScrollListener = l;
}
/**
* Set load more listener, usually you should get more data here.
*
* @param listener
* OnLoadMoreListener
* @see OnLoadMoreListener
*/
public void setOnLoadMoreListener(OnLoadMoreListener listener) {
mOnLoadMoreListener = listener;
}
/**
* When complete load more data, you must use this method to hide the footer
* view, if not the footer view will be shown all the time.
*/
public void onLoadMoreComplete() {
mIsLoading = false;
hideFooterView();
}
private OnScrollListener superOnScrollListener = new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
mCurrentScrollState = scrollState;
// Avoid override when use setOnScrollListener
if (mOnScrollListener != null) {
mOnScrollListener.onScrollStateChanged(view, scrollState);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (mOnScrollListener != null) {
mOnScrollListener.onScroll(view, firstVisibleItem,
visibleItemCount, totalItemCount);
}
// The count of footer view will be add to visibleItemCount also are
// added to totalItemCount
if (visibleItemCount == totalItemCount) {
// If all the item can not fill screen, we should make the
// footer view invisible.
hideFooterView();
} else if (!mIsLoading
&& (firstVisibleItem + visibleItemCount >= totalItemCount)
&& mCurrentScrollState != SCROLL_STATE_IDLE) {
showFooterView();
mIsLoading = true;
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
}
}
}
};
/**
* Interface for load more
*/
public interface OnLoadMoreListener {
/**
* Load more data.
*/
void onLoadMore();
}
`
阅读全文 »

Android字符串分割

发表于 2015-04-27 | 分类于 Android
1
split("|")实现字符串分割

下面同样的效果

1
2
3
4
5
6
String chartest = "abcdefghijk";
char[] chs = chartest.toCharArray();// 注:这里一定要用char来定义。
for (int i = 0; i < chs.length; i++) {
// Log.d("wxl", "chs=========" + chs[i]);
}
// 输出: a b c d e f g h i j k

String[] strs = str.split(“\|\|”);

就可以了。|在正则表达式里表示或者的意思,转一下就好了。

Android之LayoutInflate

发表于 2015-04-23 | 分类于 Android

【转载】Android获取LayoutInflater对象的方法总结

在写Android程序时,有时候会编写自定义的View,使用Inflater对象来将布局文件解析成一个View。本文主要目的是总结获取LayoutInflater对象的方法。

1、若能获取context对象,可以有以下几种方法:

1
2
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View child = inflater.inflate(R.layout.child, null);
阅读全文 »

Android之Canvas中内容保存为图片

发表于 2015-04-23 | 分类于 Android
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Bitmap bm = Bitmap.createBitmap(320, 480, Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
Paint p = new Paint();
canvas.drawRect(50, 50, 200, 200, p);
canvas.save(Canvas.ALL_SAVE_FLAG );
canvas.restore();
File f = new File("/sdcard/0.png");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(f);
bm.compress(Bitmap.CompressFormat.PNG, 50, fos);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 其次把文件插入到系统图库
try {
MediaStore.Images.Media.insertImage(context.getContentResolver(),
file.getAbsolutePath(), fileName, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));

这样就把Canvas中的内容保存成了sd卡上的一个png图片。简单说一下原理,自己create一个bitmap,然后让Canvas通过这个bitmap创建一个实例,然后在该canvas上绘制的内容都会画
在该bitmap上,保存Canvas的图层,然后把bitmap写到sd卡上的文件。注意:要在AndroidManifest.xml中添加在sd卡上读写文件的权限

1
2
3
4
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Canvas加入图片

1
2
3
4
Canvas canvas;
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(bmp, 10, 10, null);
1…121314…16
吴小龙同學

吴小龙同學

公众号:吴小龙同学

154 日志
43 分类
116 标签
RSS
WeChat GitHub 知乎 Weibo
© 2013 – 2024 吴小龙同學
由 Hexo 强力驱动 v3.4.2
|
主题 – NexT.Gemini v6.7.0