踏上了工作不归路之后,我决定把工作中遇到的问题写在这,以便日后三省自己。
1. 在系统自带的 seerBar控件,自定义拖动的图标时候,发现图标没有和拖动条粘结在一起,如图的第一个seerBar的拖动,第二个seerBar才是我想要的效果。
解决方法:在其属性上加上 android:splitTrack=”false” 即可。 (记于2017.4.28)
2. 布局之LinearLayout属性baselineAligned的作用及baseline,注意这个属性只有在线性布局才有效哦!
这个属性的意思是 baselineAligned: 基准线对齐。
首先要解释什么是基准线,这个在中文中不常见,但在以字母为书写语言的其他国家非常常见。
参考:Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline - 好库文摘 http://doc.okbase.net/JohnTsai/archive/110444.html
3.在Androidstudio添加libs文件夹作为库文件时候,记得在module下的 build.gladle 中添加
repositories{
flatDir {
dirs 'libs'
}
}
4. 如果你的工程含有 jni文件夹,记得在moudle下的build.gladle添加以下代码:
sourceSets {
main {
jni.srcDirs = []
}
}
5. 如何把一张图片实现按钮按下时候呈现2张普通图片效果呢?
- 比如下图点击第一个按钮时候,就显示第二种效果,如何只使用一张图片即可,大大减少了APK的大小?
- 我们希望让这两张图片合二为一,而且还能实现两种或者多种状态,怎么做呢?我们首先建立一个圆形的selector,正常情况下是完全透明的,按下后透明度变小。我们创建一个normal_bg_selector.xml文件,如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#21000000" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#00000000" />
</shape>
</item>
</selector>
- 关键的一步来了!我们只需要问美工拿一张图片,比如下面第一张图片,之后我们在代码这样写:我们需要把selector文件当作遮罩,然后用上面的蓝色icon作为bg,放到一个ImageButton中,如下:
<ImageButton
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/normal_bg_selector"
android:background="@drawable/blue_btn_icon"
/>
- 后记:上面的是针对的圆形的图片,那如果点击的是矩形图片呢?代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#21000000" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#00000000" />
</shape>
</item>
</selector>
- 参考:
6.在fragment中发起的调用拍照及相册方法回调函数被mainactivity拦截,怎么解决?
在fragment中已经有startActivityForResult()方法,不需要 getActivity(). startActivityForResult(intent, requestCode);
因为如果用的是getActivity(). ,意味着启动是依附的Activity,而不是本身。
- 重要事情说三遍 :
- 在fragment中已经有startActivityForResult()方法,不需要 getActivity(). startActivityForResult(intent, requestCode);
- 在fragment中已经有startActivityForResult()方法,不需要 getActivity(). startActivityForResult(intent, requestCode);
- 在fragment中已经有startActivityForResult()方法,不需要 getActivity(). startActivityForResult(intent, requestCode);
请支持原文链接:
请支持原创博客: