<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_30089721的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_30089721</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_30089721]]></copyright><item><title><![CDATA[Android Kotlin 笔记]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/140182111</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/140182111</guid><author>qq_30089721</author><pubDate>Thu, 04 Jul 2024 16:14:14 +0800</pubDate><description><![CDATA[【代码】Android Kotlin 笔记。]]></description><category></category></item><item><title><![CDATA[android 用echarts绘制图表(折线与柱状图)]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/127688349</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/127688349</guid><author>qq_30089721</author><pubDate>Fri, 04 Nov 2022 15:13:41 +0800</pubDate><description><![CDATA[Android使用echarts绘制图表]]></description><category></category></item><item><title><![CDATA[android绘制曲线和折线图]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/121614214</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/121614214</guid><author>qq_30089721</author><pubDate>Mon, 29 Nov 2021 17:09:15 +0800</pubDate><description><![CDATA[(曲线)



(折线)



1.CurveView.java


package com.package;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import an...]]></description><category></category></item><item><title><![CDATA[jetpack(androidx)的constraintlayout2新功能的使用之ImageFilterView圆形与圆角图片的使用]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/117248830</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/117248830</guid><author>qq_30089721</author><pubDate>Tue, 25 May 2021 09:42:46 +0800</pubDate><description><![CDATA[使用方法：导入implementation 'androidx.constraintlayout:constraintlayout:2.0.1'



1.圆角和圆形ImageView

圆形


&lt;androidx.constraintlayout.utils.widget.ImageFilterView
 android:layout_width="58dp"
 android:layout_height="58dp"
 android:src="@mipmap/ic_laun...]]></description><category></category></item><item><title><![CDATA[android 将代码打包成Jar包和aar文件]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/116780955</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/116780955</guid><author>qq_30089721</author><pubDate>Fri, 14 May 2021 10:43:16 +0800</pubDate><description><![CDATA[1.创建项目--新建Module--编写函数





2.配置mylibrary下的 gradle文件




    task makeJar(type: Copy) {
        delete 'build/outputs/mylibrary.jar'
        from('build/intermediates/packaged-classes/release/') //jar文件来源
        into('build/libs/') //生成路径
        include(]]></description><category></category></item><item><title><![CDATA[Android Studio NDK开发入门]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/116269996</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/116269996</guid><author>qq_30089721</author><pubDate>Thu, 29 Apr 2021 16:03:44 +0800</pubDate><description><![CDATA[Android Studio NDK开发入门

一.NDK开发环境搭建

1.点击android studio 的左上角的“File”--&gt;"Settings"--&gt;"Appearance &amp; Behavior"--&gt;"Android SDK"--&gt;"SDK Tools"，下载ND...]]></description><category></category></item><item><title><![CDATA[android 5.0以上与BLE设备通讯并突破收发数据20字节的限制]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/103363431</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/103363431</guid><author>qq_30089721</author><pubDate>Tue, 03 Dec 2019 11:13:36 +0800</pubDate><description><![CDATA[public abstract class BluetoothActivity extends AppCompatActivity {


private BluetoothManager mBluetoothManager;
private BluetoothLeScanner scanner;
private final String TAG = "BluetoothActivityTAG"...]]></description><category></category></item><item><title><![CDATA[android 防止刷新时，输入框重复调用addTextChangedListener引发问题]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/103362829</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/103362829</guid><author>qq_30089721</author><pubDate>Tue, 03 Dec 2019 10:57:50 +0800</pubDate><description><![CDATA[editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChang...]]></description><category></category></item><item><title><![CDATA[Android WebSocket实现即时通讯功能]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/102500110</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/102500110</guid><author>qq_30089721</author><pubDate>Fri, 11 Oct 2019 14:08:50 +0800</pubDate><description><![CDATA[最近做这个功能，分享一下。即时通讯（Instant Messaging）最重要的毫无疑问就是即时，不能有明显的延迟，要实现IM的功能其实并不难，目前有很多第三方，比如极光的JMessage，都比较容易实现。但是如果项目有特殊要求（如不能使用外网），那就得自己做了，所以我们需要使用WebSocket。

WebSocket

WebSocket协议就不细讲了，感兴趣的可以具体查阅资料，简而言之，它就...]]></description><category></category></item><item><title><![CDATA[android 开启前台服务，并隐藏8.0以下的通知]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/102499884</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/102499884</guid><author>qq_30089721</author><pubDate>Fri, 11 Oct 2019 14:01:17 +0800</pubDate><description><![CDATA[1.首先在activityj里面启动

Intent intent = new Intent(MainActivity.this, MyService.class);
if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.O) {
 startForegroundService(intent );
} else {
 startServ...]]></description><category></category></item><item><title><![CDATA[ExpandableListView  设置无数据页面setEmptyView();]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/102499589</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/102499589</guid><author>qq_30089721</author><pubDate>Fri, 11 Oct 2019 13:50:26 +0800</pubDate><description><![CDATA[当页面无数据时，有需求展示一个指定页面。
1.一个共用的外部界面
View emptyView = LayoutInflater.from(this).inflate(R.layout.empty_view, null);//指定界面的布局

emptyView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MA...]]></description><category></category></item><item><title><![CDATA[ExpandableListView 设置   adapter.notifyDataSetChanged();无效的解决方法。]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/102499462</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/102499462</guid><author>qq_30089721</author><pubDate>Fri, 11 Oct 2019 13:34:45 +0800</pubDate><description><![CDATA[在开发中，用到ExpandableListView 展示数据里，下拉加载遇到adapter.notifyDataSetChanged();失效，现记录一下。

1.首先在自定义adapter里面添加一个方法：


public void setData(List&lt;bean&gt; beanList) {
    this.beanList= beanList;
    notifyDataS...]]></description><category></category></item><item><title><![CDATA[android 手机通过usb数据线与OTG设备通信]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/82897973</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/82897973</guid><author>qq_30089721</author><pubDate>Sat, 29 Sep 2018 15:55:20 +0800</pubDate><description><![CDATA[1.首先在AndroidManifest.xml文件中添加所需要的权限


&amp;lt;uses-feature android:name=&quot;android.hardware.usb.host&quot; /&amp;gt;
&amp;lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&amp;gt;
&amp;lt;uses-permis...]]></description><category></category></item><item><title><![CDATA[EventBus3.0的使用]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/82852509</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/82852509</guid><author>qq_30089721</author><pubDate>Wed, 26 Sep 2018 14:22:03 +0800</pubDate><description><![CDATA[1.在build.gradle配置文件中的添加：

dependencies {

compile 'org.greenrobot:eventbus:3.0.0'


｝


2.注册绑定事件


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState)...]]></description><category></category></item><item><title><![CDATA[Kotlin使用（fragment的切换与listview、recyclerView的使用）]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/73739898</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/73739898</guid><author>qq_30089721</author><pubDate>Mon, 26 Jun 2017 14:43:16 +0800</pubDate><description><![CDATA[package com.example.kotlintest2.activity

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
i]]></description><category></category></item><item><title><![CDATA[android 手机与蓝牙设备的通讯]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/73739273</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/73739273</guid><author>qq_30089721</author><pubDate>Mon, 26 Jun 2017 13:56:14 +0800</pubDate><description><![CDATA[1.首先创建个Activity来搜索蓝牙低耗设备

package com.example.xxx;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.Bluetoo]]></description><category></category></item><item><title><![CDATA[Glide的使用]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/64442813</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/64442813</guid><author>qq_30089721</author><pubDate>Tue, 21 Mar 2017 15:41:32 +0800</pubDate><description><![CDATA[XML：

xml version="1.0" encoding="utf-8"?>
ScrollView
    android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/t]]></description><category></category></item><item><title><![CDATA[RecyclerView的使用]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/64442536</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/64442536</guid><author>qq_30089721</author><pubDate>Tue, 21 Mar 2017 15:26:49 +0800</pubDate><description><![CDATA[main.xml:

xml version="1.0" encoding="utf-8"?>
RelativeLayout
    android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.andr]]></description><category></category></item><item><title><![CDATA[android service的两种启动方式]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/64442063</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/64442063</guid><author>qq_30089721</author><pubDate>Tue, 21 Mar 2017 15:09:12 +0800</pubDate><description><![CDATA[package com.liang.myservice;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
/**
 * Created b]]></description><category></category></item><item><title><![CDATA[Android自定义录象机，录制一段视频]]></title><link>https://blog.youkuaiyun.com/qq_30089721/article/details/64438908</link><guid>https://blog.youkuaiyun.com/qq_30089721/article/details/64438908</guid><author>qq_30089721</author><pubDate>Tue, 21 Mar 2017 10:31:28 +0800</pubDate><description><![CDATA[XML: main.xml


xml version="1.0" encoding="utf-8"?>
LinearLayout
    android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.]]></description><category></category></item></channel></rss>