zoukankan      html  css  js  c++  java
  • Android自定义用户控件简单范例(一)

    一款优秀的移动应用需要具有自己独特统一的风格,通常情况下UI设计师会根据产品需求和使用人群的特点,设计整体的风格,界面的元素和控件的互效果。而原生态的Android控件为开发人员提供的是最基本的积木元素,如果要准确地传递统一的视觉效果和交互体验,对控件的自定义使用是非常有必要的。

    Android开发也采用前端xml+后端Java的形式进行页面开发,写过C#的人应该知道,xml是一种界面元素布局的直观显示,根据标签自动完成编译显示给用户,无需运行时才能看到界面,这样的分离能减小代码的耦合并且方便调试。但本质上去除xml布局文件,依然是可以完成所有的程序设计。这篇文章通过一个简单的完全从Java后台程序中进行创建的示例来说明Android自定义控件的运行原理。

    下面是一个简单的自定义控件,继承LinearLayout,加一个居中的ImageView和TextView。

        private void initView(Context context){
            setOrientation(VERTICAL);
            // 定义布局填充形式,该布局的宽和高均根据内容自适应调整
            ViewGroup.LayoutParams wrap_wrapParams = new LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
            setLayoutParams(wrap_wrapParams);
            setGravity(Gravity.CENTER);
            
            LinearLayout.LayoutParams params = new LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            params.gravity = Gravity.CENTER;
            
            imageView = new ImageView(context);
            imageView.setId(10001);
            
            textView = new TextView(context);
            textView.setId(10002);
            
            addView(imageView, params);
            addView(textView, params);
        } 
        
        /*设置显示文字*/
        public void setTextViewText(String text){
            textView.setText(text);
        }

    如果要用xml进行描述如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >
        
        <!-- Display a button -->
        <ImageView
            android:id="@+id/icon_part"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" />
            <!-- android:src="@drawable/ic_action_share" -->
    
        <TextView
            android:id="@+id/text_part"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"/>
    </LinearLayout>
    View Code

    调用的时候直接:

  • 相关阅读:
    【郑轻邀请赛 G】密室逃脱
    【郑轻邀请赛 C】DOBRI
    【郑轻邀请赛 F】 Tmk吃汤饭
    【郑轻邀请赛 I】这里是天堂!
    【郑轻邀请赛 B】base64解密
    【郑轻邀请赛 A】tmk射气球
    【郑轻邀请赛 H】 维克兹的进制转换
    解决adb command not found以及sdk环境配置
    adb shell 命令详解,android, adb logcat
    Unexpected exception 'Cannot run program ... error=2, No such file or directory' ... adb'
  • 原文地址:https://www.cnblogs.com/yxy8023ustc/p/3849999.html
Copyright © 2011-2022 走看看