欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android小工具自定義view課表

 更新時間:2022年09月14日 08:54:25   作者:Rose J  
這篇文章主要為大家詳細介紹了Android小工具自定義view課表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android自定義view課表的具體代碼,供大家參考,具體內容如下

這里是模擬課表,數(shù)據(jù)寫死了的,不過也可以通過抓包獲取教務系統(tǒng)課表

1.xml文件

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
? ? xmlns:app="http://schemas.android.com/apk/res-auto"
? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:layout_width="match_parent"
? ? android:background="#A5D6A7"
? ? android:fitsSystemWindows="true"
? ? android:layout_height="match_parent"
? ? tools:context=".KebiaoActivity">

? ? <!-- ? ? ? ?<com.baidu.lbsapi.panoramaview.PanoramaView-->
? ? <!-- ? ? ? ? ? ?android:id="@+id/panorama"-->
? ? <!-- ? ? ? ? ? ?android:layout_width="match_parent"-->
? ? <!-- ? ? ? ? ? ?android:layout_height="match_parent"-->
? ? <!-- ? ? ? ? ? ?android:clickable="true" />-->

? ? <androidx.constraintlayout.widget.ConstraintLayout
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="match_parent">
? ? ? ? <androidx.constraintlayout.widget.ConstraintLayout
? ? ? ? ? ? android:id="@+id/constraintLayout"
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="250dp"
? ? ? ? ? ? app:layout_constraintEnd_toEndOf="parent"
? ? ? ? ? ? app:layout_constraintStart_toStartOf="parent"
? ? ? ? ? ? app:layout_constraintTop_toTopOf="parent">

? ? ? ? ? ? <ImageView
? ? ? ? ? ? ? ? android:id="@+id/back"
? ? ? ? ? ? ? ? android:layout_width="25dp"
? ? ? ? ? ? ? ? android:layout_height="25dp"
? ? ? ? ? ? ? ? android:layout_marginStart="15dp"
? ? ? ? ? ? ? ? app:layout_constraintBottom_toBottomOf="@+id/textView16"
? ? ? ? ? ? ? ? app:layout_constraintStart_toStartOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintTop_toTopOf="@+id/textView16"
? ? ? ? ? ? ? ? app:srcCompat="@mipmap/fanhui"
? ? ? ? ? ? ? ? android:layout_marginLeft="15dp" />

? ? ? ? ? ? <TextView
? ? ? ? ? ? ? ? android:id="@+id/textView16"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="課表"
? ? ? ? ? ? ? ? android:textColor="#ffffff"
? ? ? ? ? ? ? ? android:textSize="26sp"
? ? ? ? ? ? ? ? android:layout_marginTop="10dp"
? ? ? ? ? ? ? ? app:layout_constraintEnd_toEndOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintHorizontal_bias="0.25"
? ? ? ? ? ? ? ? app:layout_constraintStart_toStartOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintTop_toTopOf="parent" />

? ? ? ? ? ? <TextView
? ? ? ? ? ? ? ? android:id="@+id/ershou"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="本周課表"
? ? ? ? ? ? ? ? android:textColor="@color/white"
? ? ? ? ? ? ? ? android:textSize="60sp"
? ? ? ? ? ? ? ? app:layout_constraintBottom_toBottomOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintEnd_toEndOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintStart_toStartOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintTop_toTopOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintVertical_bias="0.45" />

? ? ? ? ? ? <TextView
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="Schedule of the week"
? ? ? ? ? ? ? ? android:textColor="@color/white"
? ? ? ? ? ? ? ? android:textSize="20sp"
? ? ? ? ? ? ? ? android:layout_marginTop="10dp"
? ? ? ? ? ? ? ? app:layout_constraintEnd_toEndOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintHorizontal_bias="0.7"
? ? ? ? ? ? ? ? app:layout_constraintStart_toStartOf="parent"
? ? ? ? ? ? ? ? app:layout_constraintTop_toBottomOf="@id/ershou" />
? ? ? ? </androidx.constraintlayout.widget.ConstraintLayout>

? ? ? ? <RelativeLayout
? ? ? ? ? ? android:id="@+id/kebiao22"
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? app:layout_constraintTop_toBottomOf="@+id/constraintLayout">


? ? ? ? ? ? <TextView android:id="@+id/test_empty"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="11\n月"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_monday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="23日\n周一"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_empty"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_tuesday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="24日\n周二"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_monday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_wednesday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="25日\n周三"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_tuesday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_thursday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="26日\n周四"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_wednesday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_friday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="27日\n周五"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_thursday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_saturday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="28日\n周六"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_friday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />

? ? ? ? ? ? <TextView android:id="@+id/test_sunday_course"
? ? ? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? ? ? android:layout_height="wrap_content"
? ? ? ? ? ? ? ? android:text="29日\n周日"
? ? ? ? ? ? ? ? android:layout_toRightOf="@id/test_saturday_course"
? ? ? ? ? ? ? ? android:background="@drawable/course_text_view_bg"
? ? ? ? ? ? ? ? android:gravity="center"

? ? ? ? ? ? ? ? />


? ? ? ? </RelativeLayout>
? ? ? ? <RelativeLayout
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="800dp"
? ? ? ? ? ? android:id="@+id/test_course_rl"
? ? ? ? ? ? app:layout_constraintTop_toBottomOf="@id/kebiao22"
? ? ? ? ? ? >
? ? ? ? </RelativeLayout>

? ? </androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>

course_text_view_bg

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >

? ? <solid android:color="#ffffff"/>
? ? <stroke android:width="0.2dp"
? ? ? ? android:color="#AEAAAA"/>

</shape>

2.activity代碼

public class KebiaoActivity extends AppCompatActivity {
? ? /** 第一個無內容的格子 */
? ? protected TextView empty;
? ? /** 星期一的格子 */
? ? protected TextView monColum;
? ? /** 星期二的格子 */
? ? protected TextView tueColum;
? ? /** 星期三的格子 */
? ? protected TextView wedColum;
? ? /** 星期四的格子 */
? ? protected TextView thrusColum;
? ? /** 星期五的格子 */
? ? protected TextView friColum;
? ? /** 星期六的格子 */
? ? protected TextView satColum;
? ? /** 星期日的格子 */
? ? protected TextView sunColum;
? ? /** 課程表body部分布局 */
? ? protected RelativeLayout course_table_layout;
? ? /** 屏幕寬度 **/
? ? protected int screenWidth;
? ? /** 課程格子平均寬度 **/
? ? protected int aveWidth;
? ? int gridHeight1 = 0;
? ? //(0)對應12節(jié);(2)對應34節(jié);(4)對應56節(jié);(6)對應78節(jié);(8)對應于9 10節(jié)
? ? int[] jieci = {0,2,3,5,4,6,8};
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? if (Build.VERSION.SDK_INT >= 21){
? ? ? ? ? ? View decorView = getWindow().getDecorView();
? ? ? ? ? ? decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
? ? ? ? ? ? getWindow().setStatusBarColor(Color.TRANSPARENT);

? ? ? ? }
? ? ? ? setContentView(R.layout.activity_kebiao);

? ? ? ? ImageView mImageView=findViewById(R.id.back);
? ? ? ? mImageView.setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(View v) {

? ? ? ? ? ? ? ? finish();
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? //獲得列頭的控件
? ? ? ? empty = (TextView) this.findViewById(R.id.test_empty);
? ? ? ? monColum = (TextView) this.findViewById(R.id.test_monday_course);
? ? ? ? tueColum = (TextView) this.findViewById(R.id.test_tuesday_course);
? ? ? ? wedColum = (TextView) this.findViewById(R.id.test_wednesday_course);
? ? ? ? thrusColum = (TextView) this.findViewById(R.id.test_thursday_course);
? ? ? ? friColum = (TextView) this.findViewById(R.id.test_friday_course);
? ? ? ? satColum ?= (TextView) this.findViewById(R.id.test_saturday_course);
? ? ? ? sunColum = (TextView) this.findViewById(R.id.test_sunday_course);
? ? ? ? course_table_layout = (RelativeLayout) this.findViewById(R.id.test_course_rl);
? ? ? ? DisplayMetrics dm = new DisplayMetrics();
? ? ? ? getWindowManager().getDefaultDisplay().getMetrics(dm);
? ? ? ? //屏幕寬度
? ? ? ? int width = dm.widthPixels;
? ? ? ? //平均寬度
? ? ? ? int aveWidth = width / 8;
? ? ? ? //第一個空白格子設置為25寬
? ? ? ? empty.setWidth(aveWidth * 3/4);
? ? ? ? monColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? tueColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? wedColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? thrusColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? friColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? satColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? sunColum.setWidth(aveWidth * 33/32 + 1);
? ? ? ? this.screenWidth = width;
? ? ? ? this.aveWidth = aveWidth;
? ? ? ? int height = dm.heightPixels;
? ? ? ? int gridHeight = height / 10;
? ? ? ? gridHeight1 = gridHeight;
? ? ? ? //設置課表界面
? ? ? ? //動態(tài)生成10 * maxCourseNum個textview
? ? ? ? for(int i = 1; i <= 12; i ++){

? ? ? ? ? ? for(int j = 1; j <= 8; j ++){

? ? ? ? ? ? ? ? TextView tx = new TextView(KebiaoActivity.this);
? ? ? ? ? ? ? ? tx.setId((i - 1) * 8 ?+ j);
? ? ? ? ? ? ? ? //除了最后一列,都使用course_text_view_bg背景(最后一列沒有右邊框)
? ? ? ? ? ? ? ? tx.setBackgroundDrawable(KebiaoActivity.this.
? ? ? ? ? ? ? ? ? ? ? ? getResources().getDrawable(R.drawable.course_text_view_bg));
? ? ? ? ? ? ? ? //相對布局參數(shù)
? ? ? ? ? ? ? ? RelativeLayout.LayoutParams rp = new RelativeLayout.LayoutParams(
? ? ? ? ? ? ? ? ? ? ? ? aveWidth * 33 / 32 + 1,
? ? ? ? ? ? ? ? ? ? ? ? gridHeight);
? ? ? ? ? ? ? ? //文字對齊方式
? ? ? ? ? ? ? ? tx.setGravity(Gravity.CENTER);
? ? ? ? ? ? ? ? //字體樣式
// ? ? ? ? ? ? ? ?tx.setTextAppearance(this, R.style.courseTableText);
// ? ? ? ? ? ? ? ?//如果是第一列,需要設置課的序號(1 到 12)
? ? ? ? ? ? ? ? if(j == 1)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? tx.setText(String.valueOf(i));
? ? ? ? ? ? ? ? ? ? rp.width = aveWidth * 3/4;
? ? ? ? ? ? ? ? ? ? //設置他們的相對位置
? ? ? ? ? ? ? ? ? ? if(i == 1)
? ? ? ? ? ? ? ? ? ? ? ? rp.addRule(RelativeLayout.BELOW, empty.getId());
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? rp.addRule(RelativeLayout.BELOW, (i - 1) * 8);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? rp.addRule(RelativeLayout.RIGHT_OF, (i - 1) * 8 ?+ j - 1);
? ? ? ? ? ? ? ? ? ? rp.addRule(RelativeLayout.ALIGN_TOP, (i - 1) * 8 ?+ j - 1);
? ? ? ? ? ? ? ? ? ? tx.setText("");
? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? tx.setLayoutParams(rp);
? ? ? ? ? ? ? ? course_table_layout.addView(tx);
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? setCourseMessage(1,jieci[1],"軟件工\n程@含\n浦校區(qū)\n3508教\n室\n");
? ? ? ? setCourseMessage2(2,jieci[0],"嵌入式\n系統(tǒng)...\n@含浦\n校區(qū)\n3204教\n室");
? ? ? ? setCourseMessage(3,jieci[1],"計算機\n圖形\n學@含\n浦校區(qū)\n3310教\n室");
? ? ? ? setCourseMessage2(4,jieci[0],"計算機\n網絡...\n@含浦\n校區(qū)\n3311教\n室");
? ? ? ? setCourseMessage2(5,jieci[0],"嵌入式\n系統(tǒng)...\n@h含浦\n校區(qū)嵌入\n式實驗室");
? ? ? ? setCourseMessage(5,jieci[1],"java...\n@h含浦\n校區(qū)12\n機房\n(65)");
? ? ? ? setCourseMessage(1,jieci[3],"人工智\n能原\n理@含\n浦校區(qū)\n3306教\n");
? ? ? ? setCourseMessage2(2,jieci[2],"計算機\n網絡...\n@含浦\n校區(qū)\n2204教\n室");
? ? ? ? setCourseMessage(5,jieci[3],"操作系\n統(tǒng)原\n理@含\n浦校區(qū)\n12機房\n(65)");


? ? }
//菜單
// ? ?@Override
// ? ?public boolean onCreateOptionsMenu(Menu menu) {
// ? ? ? ?// Inflate the menu; this adds items to the action bar if it is present.
// ? ? ? ?getMenuInflater().inflate(R.menu.main, menu);
// ? ? ? ?return true;
// ? ?}

? ? public void setCourseMessage(int xingqi,int jieci,String courseMessage){
? ? ? ? //五種顏色的背景
? ? ? ? int[] background = {R.drawable.course_info_blue, R.drawable.course_info_green,
? ? ? ? ? ? ? ? R.drawable.course_info_red, R.drawable.course_info_zisi,
? ? ? ? ? ? ? ? R.drawable.course_info_yellow};
? ? ? ? // 添加課程信息
? ? ? ? TextView courseInfo = new TextView(this);
? ? ? ? courseInfo.setText(courseMessage);
? ? ? ? //該textview的高度根據(jù)其節(jié)數(shù)的跨度來設置
? ? ? ? RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
? ? ? ? ? ? ? ? aveWidth * 31 / 32,
? ? ? ? ? ? ? ? (gridHeight1 - 5) * 3 );
? ? ? ? //textview的位置由課程開始節(jié)數(shù)和上課的時間(day of week)確定
? ? ? ? rlp.topMargin = 5 + jieci * gridHeight1;
? ? ? ? rlp.leftMargin = 5;
? ? ? ? // 偏移由這節(jié)課是星期幾決定
? ? ? ? rlp.addRule(RelativeLayout.RIGHT_OF, xingqi);
? ? ? ? //字體劇中
? ? ? ? courseInfo.setGravity(Gravity.CENTER);
? ? ? ? // 設置一種背景
? ? ? ? Random random = new Random();
? ? ? ? courseInfo.setBackgroundResource(background[random.nextInt(5)]);
? ? ? ? courseInfo.setTextSize(12);
? ? ? ? courseInfo.setLayoutParams(rlp);
? ? ? ? courseInfo.setTextColor(Color.WHITE);
? ? ? ? //設置不透明度
? ? ? ? courseInfo.getBackground().setAlpha(222);
? ? ? ? course_table_layout.addView(courseInfo);
? ? }
? ? public void setCourseMessage2(int xingqi,int jieci,String courseMessage){
? ? ? ? //五種顏色的背景
? ? ? ? int[] background = {R.drawable.course_info_blue, R.drawable.course_info_green,
? ? ? ? ? ? ? ? R.drawable.course_info_red, R.drawable.course_info_zisi,
? ? ? ? ? ? ? ? R.drawable.course_info_yellow};
? ? ? ? // 添加課程信息
? ? ? ? TextView courseInfo = new TextView(this);
? ? ? ? courseInfo.setText(courseMessage);
? ? ? ? //該textview的高度根據(jù)其節(jié)數(shù)的跨度來設置
? ? ? ? RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
? ? ? ? ? ? ? ? aveWidth * 31 / 32,
? ? ? ? ? ? ? ? (gridHeight1 - 5) * 2 );
? ? ? ? //textview的位置由課程開始節(jié)數(shù)和上課的時間(day of week)確定
? ? ? ? rlp.topMargin = 5 + jieci * gridHeight1;
? ? ? ? rlp.leftMargin = 5;
? ? ? ? // 偏移由這節(jié)課是星期幾決定
? ? ? ? rlp.addRule(RelativeLayout.RIGHT_OF, xingqi);
? ? ? ? //字體劇中
? ? ? ? courseInfo.setGravity(Gravity.CENTER);
? ? ? ? // 設置一種背景
? ? ? ? Random random = new Random();
? ? ? ? courseInfo.setBackgroundResource(background[random.nextInt(5)]);
? ? ? ? courseInfo.setTextSize(12);
? ? ? ? courseInfo.setLayoutParams(rlp);
? ? ? ? courseInfo.setTextColor(Color.WHITE);
? ? ? ? //設置不透明度
? ? ? ? courseInfo.getBackground().setAlpha(222);
? ? ? ? course_table_layout.addView(courseInfo);
? ? }


}

3.資源文件

course_info_blue

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >


? ? <solid android:color="#4FC3F7"/>

</shape>

course_info_green

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >


? ? <solid android:color="#81C784"/>

</shape>

course_info_red

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >


? ? <solid android:color="#E57373"/>

</shape>

course_info_zisi

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >


? ? <solid android:color="#9575CD"/>

</shape>

course_info_yellow

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
? ? >


? ? <solid android:color="#FFB74D"/>

</shape>

4.運行

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android身份證號有效性校驗工具類案例

    Android身份證號有效性校驗工具類案例

    這篇文章主要介紹了Android身份證號有效性校驗工具類案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Android中imageView圖片放大縮小及旋轉功能示例代碼

    Android中imageView圖片放大縮小及旋轉功能示例代碼

    這篇文章主要介紹了Android中imageView圖片放大縮小及旋轉功能示例代碼,需要的朋友可以參考下
    2017-08-08
  • Android 掃碼槍不使用輸入框獲取掃描值的操作方法

    Android 掃碼槍不使用輸入框獲取掃描值的操作方法

    這篇文章主要介紹了Android 掃碼槍不使用輸入框獲取掃描值的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Android開發(fā)之串口編程原理和實現(xiàn)方式

    Android開發(fā)之串口編程原理和實現(xiàn)方式

    提到串口編程,就不得不提到JNI,不得不提到JavaAPI中的文件描述符類:FileDescriptor;下面我分別對JNI、FileDescriptor以及串口的一些知識點和實現(xiàn)的源碼進行分析說明,感興趣的朋友可以了解下
    2013-01-01
  • Android UI:ListView - SimpleAdapter實例詳解

    Android UI:ListView - SimpleAdapter實例詳解

    這篇文章主要介紹了Android UI:ListView - SimpleAdapter實例詳解,SimpleAdapter是擴展性最好的適配器,可以定義各種你想要的布局,而且使用很方便,需要的朋友可以參考下
    2016-11-11
  • 分別用ToolBar和自定義導航欄實現(xiàn)沉浸式狀態(tài)欄

    分別用ToolBar和自定義導航欄實現(xiàn)沉浸式狀態(tài)欄

    本文主要介紹了分別用ToolBar和自定義導航欄實現(xiàn)沉浸式狀態(tài)欄的方法步驟,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • android Launcher3設置默認桌面應用

    android Launcher3設置默認桌面應用

    這篇文章主要為大家詳細介紹了android Launcher3設置默認桌面應用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Android桌面組件App Widget用法入門教程

    Android桌面組件App Widget用法入門教程

    這篇文章主要介紹了Android桌面組件App Widget用法,較為深入淺出的分析了Android桌面組件App Widget的功能、定義及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Android自定義view實現(xiàn)輸入框效果

    Android自定義view實現(xiàn)輸入框效果

    這篇文章主要為大家詳細介紹了Android自定義view實現(xiàn)輸入框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Android Fragment源碼分析Add方法

    Android Fragment源碼分析Add方法

    Fragment是Android3.0后引入的一個新的API,他出現(xiàn)的初衷是為了適應大屏幕的平板電腦, 當然現(xiàn)在他仍然是平板APP UI設計的寵兒,而且我們普通手機開發(fā)也會加入這個Fragment, 我們可以把他看成一個小型的Activity,又稱Activity片段
    2022-08-08

最新評論