
android
文章平均质量分 55
玛法里奥赵四
这个作者很懒,什么都没留下…
展开
-
android--自定义view的绘制
1.ondraw方法在初始化后自动调用,invalidate()方法可以通知重调ondraw来重绘view。2.配置canvas的画笔。mCurvePaint = new Paint();mCurvePaint.setAntiAlias(true);mCurvePaint.setColor(getResources().getColor(R.color.lightBlue));mCurvePa原创 2016-10-11 12:04:25 · 310 阅读 · 0 评论 -
Android--NavigationView的基本用法
NavigationView是基于MD风格的控件,是一种google官方推出导航界面,可以用listView实现同样的效果。NavigationView的使用十分方便,只用写xml即可,最后在activity中监听按键。xml文件: <android.support.design.widget.NavigationView android:id="@+id原创 2016-12-08 10:15:54 · 369 阅读 · 0 评论 -
Android--TabLayout的用法
MD设计风格中,可以用TabLayout + ViewPager + Fragment + TabsFragmentAdapter来实现选项卡界面,如下图:MainActivity代码:public class TabsActivity extends AppCompatActivity { private ViewPager mViewPager = null;原创 2016-12-09 15:42:10 · 319 阅读 · 0 评论 -
android -- 组件化和插件化
1.组件化开发组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。正常一个App中可以有多个module,但是一般只会有一个module是设置为application的,其他均设置为library,组件化开发就是要每个module都可转载 2016-12-26 15:47:40 · 738 阅读 · 0 评论 -
Android -- wifi与socket
最近项目需求要做一个手机、PC建立wifi连接,并通过socket通信的功能。记录一下相关的代码。1.WifiManager类 mWifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE); mWifiInfo = mWifiManager.getConnec原创 2016-12-26 11:44:27 · 937 阅读 · 0 评论 -
Android -- adb devices找不到设备的解决办法
1.lsusb找到设备的vendorID和productID2.adb_usb.ini添加cd ~/.android目录。~/.android$ sudo gedit adb_usb.ini,打开文件,添加vendorID和productID。3.rules添加cd /etc/udev/rules.d目录。执行sudo gedit ./51-an原创 2017-01-04 11:17:09 · 1001 阅读 · 0 评论 -
Android---Actionbar的使用
MainActivity.javapublic class MainActivity extends Activity { private ActionBar mActionBar = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(原创 2017-01-06 11:56:01 · 362 阅读 · 0 评论 -
Android -- 小试AIDL
1.关于AIDL AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。2.Demo首先,在AS工程中创建一个.aidl文件,该文件定义了通信接口。// IMyAidlInterface.aidlp原创 2017-01-13 11:24:56 · 343 阅读 · 0 评论 -
Android--DrawerLayout的基本用法
DrawerLayout提供给了一个左右滑动抽屉的效果。一般把DrawerLayout设为根布局,然后分别配置主页面、左抽屉和右抽屉。xml:<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+原创 2016-12-07 11:26:01 · 480 阅读 · 0 评论 -
Android--关于String.xml中<xliff:g >标签的用法
string.xml中: Chip: %1$s调用时:String mChipType = "milan";getString(R.string.test_chip_name, mChipType);标签介绍: 属性id可以随便命名 属性值举例说明%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格 %n$md:代表原创 2016-11-24 15:04:36 · 357 阅读 · 0 评论 -
Android -- Handler引起的内存泄露及解决办法
用Lint分析时,若使用内部类创建handler,会报内存泄露的问题。造成内存泄露的原因是message和activity的生命周期不一样,当acticvity销毁的时候,message还在消息队列中,导致GC无法进行垃圾回收。Handler mHandler = new Handler() { @Override public void handleMessage(Mes原创 2016-12-05 17:48:45 · 366 阅读 · 0 评论 -
Andorid - wifi+socket
wifi建立连接后你可以得到自己的一个ip地址,然后使用这个ip地址就可以通信了。Wifi相关的类:mWifiManager = (wifiManager)getSystemService(Context.WIFI_SERVICE);mWifiInfo = mWifiManager.getConnectionInfo();int ipAddr = mWifiInfo.getIpAddress()/原创 2016-09-29 10:24:25 · 271 阅读 · 0 评论 -
android -- 关于fragment
1.Fragment有静态和动态两种使用方式 静态是指将fragment写在acticity的xml中当做普通控件。 动态是指在代码中添加fragment,动态使用时,需要在布局文件中为 Fragment 添加一个容器,以安排 Fragment 在 activity 视图中的位置。实践中常选用 FrameLayout 作为容器。2.Fragment的动态添加:FragmentManager fm原创 2016-09-30 12:02:06 · 350 阅读 · 0 评论 -
android--关于内部存储、外部存储以及存储路径
获取路径的方法getDataDirectory() = /datagetFilesDir().getPath() = /data/user/0/com.goodix.gfdebugtool/filesgetRootDirectory().getPath() = /systemgetExternalFilesDir(String DIRECTORY_DCIM) = /storage/emulated/原创 2016-10-26 11:50:38 · 619 阅读 · 0 评论 -
android -- dp与pix
px :是屏幕的像素点 dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位,其它用dip)转换:private int dp2px(int dp) { return (int) TypedValue.applyDimensio原创 2016-09-30 14:38:47 · 833 阅读 · 0 评论 -
Android -- 关于UI卡顿的优化
1.检测OverDraw设置 -> 开发者选项 -> 调试GPU过度绘制 -> 显示GPU过度绘制。打开检测工具,进入待优化的界面,然后根据颜色判断各个view的OverDraw情况。解决方法:一、移除不必要的background设置。 二、对于有部分遮挡覆盖关系的view,使用clipRect在OnDraw方法中绘制。2.减少View的嵌套层次用Hiera原创 2016-11-07 10:43:42 · 311 阅读 · 0 评论 -
android--关于listView使用的几点建议
对于ListView的卡顿问题,有如下一些建议:1、使用ListView的时候注意尽量使用layout_height=”match_parent”。2、如果第1点无法避免,需要注意ListView的父布局,父布局以上绝对不要使用RelativeLayout,即使使用FrameLayout或LinearLayout会增加布局层级。3、如果第1点无法避免,需要注意不要在getView中使用setVisi转载 2016-10-17 10:59:56 · 376 阅读 · 0 评论 -
Android -- 字符和数字的判断
利用Pattern和Matcher类:String input = dialogEditText.getText().toString();Pattern pattern = Pattern.compile("[0-9]*");Matcher matcher = pattern.matcher(input);if(!matcher.matches()){原创 2016-11-01 10:04:05 · 572 阅读 · 0 评论 -
Android--关于Gradle的一些记录
1.一个project中包含两个gradle(1)project层面的build.gradle// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcenter()原创 2016-11-30 10:38:44 · 333 阅读 · 0 评论 -
AndroidFramework -- Binder中的Bn与Bp
BpXXX、BnXXX同时实现一个接口IXXX。BpXXX主要是用来处理java层传下来的服务请求,然后通过transact将处理请求传给BnXXX(通过binder)首先,定义IXXX接口:class ITestDaemon : public IInterface, public IBinder::DeathRecipient { virtual void init();原创 2017-03-13 10:26:54 · 10542 阅读 · 2 评论