Waychel

发现一个新世界


  • 首页

  • 关于

  • 归档

Android Studio 沿用Eclipse项目源码结构,带Library

发表于 2015-08-10

       上一篇文章已实现了 Android Studio 使用Eclipse项目,仍保留项目结构,非导入转成gradle,但如果本来Ecllipse项目引用了其他Library,如果转移到Android Studio呢?(若未阅读过上一篇文章,请点击上面链接)

       如果在Eclipse中引用Library是很简单的,只需要勾选下即可,而我们将项目转移到Studio,在上文的基础上,其实同样简单,只是步骤多了一点点。

**在Modules中,点击+号->New Module

选择Android->Empty Module

Next之后路径选中Library(Tools)->Finish

在Library(Tools) 勾选Library module即可。

OK,赶紧编译运行看下~~

碎碎念:细心的童鞋应该看到了上图底部有一行字,其实是Studio建议 Migrate Project to Gradle,所以最后还是建议下能转成Gradle还是听从官方建议吧。

附上Demo:https://github.com/Waychel/EclipseLibsToStudio

Android Studio 使用Eclipse项目,仍保留项目结构,非导入转成gradle

发表于 2015-08-07
目前Android项目基本都转成Gradle,但仍有不少停留在Eclipse或习惯于Eclipse生成的项目结构。其实Android Studio 0.4还是0.5版本之前是支持'import'  Eclipse Android项目并保持其原有结构,但现在的版本都建议转成Gradle。

没办法,因某些因素项目只能保留还是Eclipse生成的结构,但又想用Studio,只能折腾一番。其实Gradle除了第一次,后面流畅得很…
废话不多说,先上最终效果图一目了然:

细心的童鞋就会发现项目中多了个.idea文件夹,关键就在这里,好在这里面的东西我们只需要几步操作配置一下,Studio会自动生成,并最终可编译打包成Apk。
下面我们来详细讲下是怎么配置,
1.用Studio打开(File->Open),是File->Open,不是 File->New->Import Project,Open Open Open(重要的事说三遍),之后选择原有项目。(然后你就会发现一片红~,不怕,进入到下一步)
2.File->Project Structure

2.1 **修改Project的名称,指定编译的路径

2.2 Modules里面的配置最关键


**Module 选中src->点击Sources选项 gen同理,但之后gen需要在右边点击那个小小的’p’,然后勾选

配置代码编译的平台

然后再Module(toStudio) 右键Add-Android,然后修改下Manifes file等路径


2.3引用第三方jar库

点击 +号 -> Java 之后选中项目目录libs/*.jar(可以多选一次引用完)

好了,OK之后关闭Project Structure,稍等几秒,原先一片红是不是消失了
…

咦,编译的图标怎么是灰的,我们还需要配置一下这里,


OK之后,就可以在Studio愉快de玩耍了。

附带上源码:https://github.com/Waychel/EclipseToStudio

使用Android Studio查找文件中含有中文字符串位置

发表于 2015-07-14
一般敲代码,为了“省时便利”,譬如View、Toast、Log等带有中文字符串的,大多数人都直接在代码(类文件)完成,这也为未来埋下了隐患。Goggle其实要求这些都应该写到资源文件res/values*下,一来App国际化方便,二是可以根据文字快速定位代码的位置(尤其是对项目不熟悉的开发者)

   但后果已经造成了,我们总不能一个个文件打开一行行代码去找吧,那该有多累,况且还有可能会漏掉,下面讲一下如何使用Android Studio查找文件,并将其中含有中文字符串找出,还可以定位其位置行数。
   有了这个专门为Android开发而生的Android Studio工具,利用其查找功能和正则表达式即可,下面先献上正则表达式: 

^((?!(\*|//)).)+[\u4e00-\u9fa5]

快捷键Crtl+Shift+F打开查找功能:

相信大家都会用了!

通过自定义Uri打开应用

发表于 2015-07-02
一般我们用QQ、微信打开用网易新闻,今日头条等应用分享过来的链接时,在QQ、微信内置浏览器的顶部有 “立即打开” 等按钮,点击可以只有Android手机上有安装网易、今日头条的应用,则会启动对应的应用展示相关界面。实现方式就是通过自定义Uri。

对Uri不了解可参考:http://blog.csdn.net/harvic880925/article/details/44679239

Uri形式如下:
[scheme:][//host:port][path][?query][#fragment]

1.在自身应用 AndroidManifest.xml对应的Activity加入
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="openapp" android:host="post"/> </intent-filter>

2.在Html相关位置:
<a href='waychel://post/123456'>打开应用</a>

这样当其他应用浏览器打开网页时,点击上述加入的链接,即会打开应用到相应的Activity。

另外:如果我们的应用中内置浏览器,如果支持这些自定义协议呢?
处理方式,是在WebView的 shouldOverrideUrlLoading() 方法加入

1
2
3
4
5
6
7
8
9
10
11
12
13
if(url != null && (url.startsWith("http:") || url.startsWith("https:"))){
return false;
}
try {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
intent.addCategory(Intent.CATEGORY_DEFAULT);
context.startActivity(intent);
return true;
}catch (Exception e){
LogUtils.e(e.getMessage(),e);
}


弄这块的时候,研究了下网易新闻加载的方式,发现网易网页端做了一下特殊处理,防止一些浏览器不支持或本地没有安装网易新闻的应用,从而会导致跳转到一个错误的页面。网易新闻的处理方式,大概是在当前页面弄了个空白的iframe,点击打开应用的时候,先更新下iframe再跳转至下载页面。

附上代码:

<html> <head></head> <body> <a onclick="isOpenApp()">打开应用</a> <iframe id="zeroId" style="display: none !important;" src=""> <script> function isOpenApp(){ //加载iframe document.getElementById('zeroId').src='waychel://post/123456'; //跳转到新的页面 window.location.href='http://waychel.com'; } </script> </body> </html>

Android UI 遇到的问题

发表于 2015-07-02

1.EditText使用android:hint属性,提示用户输入,无法显示或显示乱码框框
解决办法:经调试,删掉android:inputType属性即可
注:项目中我用android:inputType="textPassword" 来隐藏密码,只能通过代码来实现et.setTransformationMethod(PasswordTransformationMethod.getInstance());

2.Android 5.0 默认水波纹背景属性
android:background="?android:attr/actionBarItemBackground" 5.0以上超出边界圆形水波纹
android:background="?android:attr/selectableItemBackground" 5.0以上边界内圆形水波纹

1…345…8
Waychel

Waychel

关注互联网、物联网、创业、产品、技术

36 日志
9 标签
© 2014 - 2022 Waychel
粤ICP备14032841号-1