精华内容
下载资源
问答
  • 使用和获取Android的主题属性

    千次阅读 2018-01-24 12:02:36
    Android,如何在代码中获取attr属性的值 1. layout布局文件中使用主题属性 很多时候,我们想引用主题中的属性(attr)。例如 - colorBackGround:activity默认背景 - listChoiceBackgroundIndicator:...

    参考文章:
    Android,如何在代码中获取attr属性的值

    1. layout布局文件中使用主题属性

    很多时候,我们想引用主题中的属性(attr)。例如
    - colorBackGround:activity默认背景
    - listChoiceBackgroundIndicator:listView中item使用的背景selector

    这些在layout文件中使用时很简单的,只需要?+ 属性的方式即可引用。例如android:background="?android:colorBackground"

    2. 代码中获取主题属性的两种方式

    2.1 方式1:obtainStyledAttributes(返回TypedArray)

    但是如果想要在代码中使用,可以这么做:

    private @ColorInt int getColorBackground() {
           int[] attrs = new int[] {android.R.attr.colorBackground};
           TypedArray typedArray = getActivity().obtainStyledAttributes(attrs);
           int color = typedArray.getColor(0, 0xfffafafa);
           typedArray.recycle();
           return color;
       }

    2.2 方式2:resolveAttribute(返回TypedValue)

    也有另外一种方式.

       public static int getColorBackground(){
               TypedValue typedValue = new TypedValue();
               // 第三个参数true,实际上我看不太懂是什么作用。
               // 猜测:传入的id可能是一个引用,是否要继续解析该引用。
               // 文档中这么描述:
               /*
               If true, resource references will be walked; if
                                 false, <var>outValue</var> may be a
                                 TYPE_REFERENCE.  In either case, it will never
                                 be a TYPE_ATTRIBUTE.
               */
               context.getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true);
               return typedValue.data;
           }

    2.3 两种方式的区别

    方式1无法直接获取到某个Style中的值,而且它所需要的第三个参数看不太懂,获取到的TypedValue的使用方式也看不太懂。

    所以我更倾向于使用obtainStyledAttributes方法,比较直观。并且在自定义View中也经常使用。

    2.4 两种方式结合来获取某个Style中的值

    在参考文章Android,如何在代码中获取attr属性的值
    中,演示了如何获取某个Style中的值。

    例如获取TextAppearance.Large中的textSize。

    <style name="TextAppearance.Large">
        <item name="android:textSize">22sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">?textColorPrimary</item>
    </style>

    获取方式如下,因为方式1无法直接获取到某个Style中的值,所以两种方式结合:

    // 先使用方式1获取到textAppearanceLarge style的resId
    TypedValue typedValue = new TypedValue();
    getTheme().resolveAttribute(android.R.attr.textAppearanceLarge, typedValue, true);
    
    // 然后obtain这个Id
    int[] attribute = new int[] { android.R.attr.textSize };
    TypedArray array = getTheme().obtainStyledAttributes(typedValue.resourceId, attribute);
    int textSize = array.getDimensionPixelSize(0, -1);
    array.recycle();

    2.5 obtainStyledAttributes方式获取某个Style中的值

    而实际上单纯使用obtainStyledAttributes方法即可获取更加便利,并且直观:

    int[] attr = new int[]{android.R.attr.textSize};
    TypedArray array = getTheme().obtainStyledAttributes(android.R.style.TextAppearance_Large, attr);
    int textSize = array.getDimensionPixelSize(0  , -1 );
    array.recycle();

    3. 总结

    综上所述,我推荐使用obtainStyledAttributes方法!

    展开全文
  • Android 照片属性获取

    千次阅读 2018-01-08 10:58:19
    手机照片的属性获取 import android.media.ExifInterface; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.utils.CoordinateConverter; import java.io.File; import java.io.IOException; ...

    手机照片的属性获取

    import android.media.ExifInterface;
    
    import com.baidu.mapapi.model.LatLng;
    import com.baidu.mapapi.utils.CoordinateConverter;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * CreateTime 2017/8/7 14:34
     * Author LiuShiHua
     * Description:获取照片的属性
     */
    
    public class PhotoAttrsUtil {
    
        public static PictureAttrs getPhotoAttrs(String path) {
            if (path == null) return null;
            File file = new File(path);
            if (!file.exists()) return null;
            String TAG_APERTURE = null;     //光圈值
            String TAG_DATETIME = null;     //拍照时间
            String TAG_EXPOSURE_TIME = null;//曝光时间
            String TAG_FLASH = null;        //闪光灯
            String TAG_FOCAL_LENGTH = null; //焦距
            String TAG_IMAGE_LENGTH = null; //图片高度
            String TAG_IMAGE_WIDTH = null;  //图片宽度
            String TAG_ISO = null;          //ISO
            String TAG_MAKE = null;         //设备品牌
            String TAG_MODEL = null;        //设备型号,整形表示
            String TAG_ORIENTATION = null;  //旋转角度
            String TAG_WHITE_BALANCE = null;//白平衡
            String TAG_GPS_LATITUDE_REF = null;//纬度 [南S/北N]
            String TAG_GPS_LONGITUDE_REF = null;//经度 [东E/西W]
    
            String TAG_GPS_LATITUDE = null;//纬度
            String TAG_GPS_LONGITUDE = null;//经度
    
    
            try {
                ExifInterface exifInterface = new ExifInterface(path);
                TAG_APERTURE = exifInterface.getAttribute(ExifInterface.TAG_APERTURE);
                TAG_DATETIME = exifInterface.getAttribute(ExifInterface.TAG_DATETIME);
                TAG_EXPOSURE_TIME = exifInterface.getAttribute(ExifInterface.TAG_EXPOSURE_TIME);
                TAG_FLASH = exifInterface.getAttribute(ExifInterface.TAG_FLASH);
                TAG_FOCAL_LENGTH = exifInterface.getAttribute(ExifInterface.TAG_FOCAL_LENGTH);
                TAG_IMAGE_LENGTH = exifInterface.getAttribute(ExifInterface.TAG_IMAGE_LENGTH);
                TAG_IMAGE_WIDTH = exifInterface.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);
                TAG_ISO = exifInterface.getAttribute(ExifInterface.TAG_ISO);
                TAG_MAKE = exifInterface.getAttribute(ExifInterface.TAG_MAKE);
                TAG_MODEL = exifInterface.getAttribute(ExifInterface.TAG_MODEL);
                TAG_ORIENTATION = exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION);
                TAG_WHITE_BALANCE = exifInterface.getAttribute(ExifInterface.TAG_WHITE_BALANCE);
                TAG_GPS_LATITUDE_REF = exifInterface.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF);
                TAG_GPS_LONGITUDE_REF = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
                TAG_GPS_LONGITUDE_REF = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
                TAG_GPS_LONGITUDE_REF = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
                TAG_GPS_LATITUDE = exifInterface.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
                TAG_GPS_LONGITUDE = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    //        L.d("光圈值:" + TAG_APERTURE);
    //        L.d("拍摄时间:" + TAG_DATETIME);
    //        L.d("曝光时间:" + TAG_EXPOSURE_TIME);
    //        L.d("闪光灯:" + TAG_FLASH);
    //        L.d("焦距:" + TAG_FOCAL_LENGTH);
    //        L.d("图片高度:" + TAG_IMAGE_LENGTH);
    //        L.d("图片宽度:" + TAG_IMAGE_WIDTH);
    //        L.d("ISO:" + TAG_ISO);
    //        L.d("设备品牌:" + TAG_MAKE);
    //        L.d("设备型号:" + TAG_MODEL);
    //        L.d("旋转角度:" + TAG_ORIENTATION);
    //        L.d("白平衡:" + TAG_WHITE_BALANCE);
    //        L.d("纬度:" + getRationalLatLonToFloat(TAG_GPS_LATITUDE, TAG_GPS_LATITUDE_REF));
    //        L.d("经度:" + getRationalLatLonToFloat(TAG_GPS_LONGITUDE, TAG_GPS_LONGITUDE_REF));
    
            LatLng latLng = new LatLng(getRationalLatLonToFloat(TAG_GPS_LATITUDE, TAG_GPS_LATITUDE_REF),
                    getRationalLatLonToFloat(TAG_GPS_LONGITUDE, TAG_GPS_LONGITUDE_REF));
            LatLng baidu = transGoogleGpsToBaiduGps(latLng);
            return new PictureAttrs(getTimeFormat(TAG_DATETIME), TAG_MODEL, baidu.latitude, baidu.longitude, null);
        }
    
        //将经纬度String转换成double
        private static double getRationalLatLonToFloat(String rationalString, String ref) {
            if (rationalString == null || ref == null) return 0.0;
            String[] parts = rationalString.split(",");
            String[] pair;
            pair = parts[0].split("/");
            double degrees = Double.parseDouble(pair[0].trim()) / Double.parseDouble(pair[1].trim());
            pair = parts[1].split("/");
            double minutes = Double.parseDouble(pair[0].trim()) / Double.parseDouble(pair[1].trim());
            pair = parts[2].split("/");
            double seconds = Double.parseDouble(pair[0].trim()) / Double.parseDouble(pair[1].trim());
            double result = degrees + (minutes / 60.0) + (seconds / 3600.0);
            if ((ref.equals("S") || ref.equals("W"))) {
                return -result;
            }
            return result;
        }
    
        public static class PictureAttrs {
            private String time;
            private String model;//手机型号
            private double latitude;//纬度
            private double longitude;//经度
            private String seaLevel;//海拔高度
    
            public PictureAttrs(String time, String model, double latitude, double longitude, String seaLevel) {
                this.time = time;
                this.model = model;
                this.latitude = latitude;
                this.longitude = longitude;
                this.seaLevel = seaLevel;
            }
    
            public String getTime() {
                return time;
            }
    
            public void setTime(String time) {
                this.time = time;
            }
    
            public String getModel() {
                return model;
            }
    
            public void setModel(String model) {
                this.model = model;
            }
    
            public double getLatitude() {
                return latitude;
            }
    
            public void setLatitude(double latitude) {
                this.latitude = latitude;
            }
    
            public double getLongitude() {
                return longitude;
            }
    
            public void setLongitude(double longitude) {
                this.longitude = longitude;
            }
    
            public String getSeaLevel() {
                return seaLevel;
            }
    
            public void setSeaLevel(String seaLevel) {
                this.seaLevel = seaLevel;
            }
        }
    
        //转换时间格式
        private static String getTimeFormat(String resTime) {
            if (Tools.isEmpty(resTime)) return "";
            Date date = null;
            try {
                date = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss").parse(resTime);
                return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return resTime;
        }
    
        //转换成百度坐标
        private static LatLng transGoogleGpsToBaiduGps(LatLng sourceLatLng) {
            CoordinateConverter converter = new CoordinateConverter();
            converter.from(CoordinateConverter.CoordType.GPS);
            converter.coord(sourceLatLng);
            return converter.convert();
        }
    
    }
    
    展开全文
  • 自定义属性的定义与获取,看了hyman老师的Android制作微信6.0界面,以及Android制作的QQ5.0侧滑菜单,深有感触,感觉学到了不少的东西,两个项目里面都运用到了android属性的定义与获取,所以想在CSDN博客中做下总结...

                  自定义属性的定义与获取,看了hyman老师的Android制作微信6.0界面,以及Android制作的QQ5.0侧滑菜单,深有感触,感觉学到了不少的东西,两个项目里面都运用到了android属性的定义与获取,所以想在CSDN博客中做下总结,方便自己以后不是很熟悉的时候来回顾一下!

    以下是关于Android自定义属性的的使用步骤

    1.首先定义自定义属性。

    2.其次在组件中使用自定义属性,为属性赋值。

    3.在java代码中获取自定义属性,并使用属性值。


    以上是简单的过程,下面对过程进行详述:


    1.1资源文件res中的values文件夹中自定义一个名为attrs.xml形式的文件,

          其中资源文件根节点为<resources></resource>里面拥有的子节点可以为<attr> ,<declare-styleable>,

      

        1.1.1   <attr>节点

         attr节点的属性有name,format.

         name就是给自定义属性命名的,最好能做到见明知意,

         关于format是给自定义的属性定义一个类型,有以下的类型

         -reference  引用类型 比如说自定义图片属性<attr name="icon" format="reference"></attr>

         -color         颜色类型  用来自定义颜色的类型

          -string       字符串类型  。。

          -demension 尺寸类型   用来定义尺寸类型

          -  

          -  

       1.1.2 <declare-styleable>节点

        declare-styleable节点也拥有子节点<attr>

        把<resource>节点内的子节点<attr>节点定义的自定义属性全部Copy到<declare-styleable>节点中,这个时候<declare-styleable>节点的子节点<attr>里面只需要name属性,自定义属性的format就可以去掉了(前提是你已经在resources节点下自定义属性节点中声明了format,当然你也可以在自定义属性的时候不声明fomat,在<declare-styleable>的子节点<attr>中来声明)。

       其中你需要给<declare-styleable>节点定义一个name属性,给name属性赋值,(自定义属性多用在自定义组件,所以这里最好使用自定义组件的名字)

       上面给name赋值,是为了使用自定义属性,是非常有意义的,而且是必须的。下面贴下代码加强理解

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <attr name="icon" format="reference"></attr>
        <attr name="color" format="color"></attr>
        <attr name="text" format="string"></attr>
        <attr name="text_size" format="dimension"></attr>
    
        <declare-styleable name="ChangeColorIconWithText">
            <attr name="icon"></attr>
            <attr name="color"></attr>
            <attr name="text"></attr>
            <attr name="text_size"></attr>
        </declare-styleable>
    
    </resources>



    2.1自定义属性完成后,接下来要使用自定义属性了

      首先我们来比较一下自定义属性与系统自带的属性,比如说

      

            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" >
       这些系统自带的属性 开头都是android: 他们的命名空间在

       

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

             这里我们要看到的是xmlns 意思是xml name space xml命名空间  在、、apk/res/android下面

    而这里我们自己使用自己的自定义属性 就必须要加入自己的命名空间,还是与自定义搭上边

      自定义命名空间的方法:

    xmlns:hyman="http://schemas.android.com/apk/res/com.imooc.weixin6_0"


    这里的hyman名字是自己取的,当然要和你的项目有关,然后与系统的提供的属性集合一样,我们只需要把res/后面的内容换掉,把android换成自己项目的包名。一定是自己项目的包名,不是java文件所在的包名。


     命名空间完毕,使用自己的自定义属性,给属性值赋值,贴代码

    其实我觉得使用自定义的属性的最重要的地方就是给自定义属性赋值,我们要利用的是值,自定义属性的都是容器,容器里面装的是值

        

    <com.imooc.weixin6_0.ChangeColorIconWithText
                android:id="@+id/id_indicator_one"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:padding="5dp"
                hyman:icon="@drawable/ic_menu_start_conversation"
                hyman:text="@string/app_name"
                hyman:text_size="12sp"
                hyman:color="#ff45c01a" />

       

            上面使用的自定义属性,使用提示的时候有时候、eclipse会给提示,有时候不会。


    3.1最后一步了,是时候在java代码中使用自定义的属性了,并获取自定义属性的值去进行一系列操作

          java代码中获取自定义的属性值我们就不得不说到两个重要的类的了,第一个重要的类是TypedArray,第二个重要的类是TypedValue

        3.1.1    TypedValued

            最近接触到这个类比较多,而且主要是它的像素单位转换功能,网上像素单位转换有不少方法,我也转了博文,下面就不在赘述,我把博文的链接贴下面了


    http://blog.csdn.net/qq_24868901/article/details/45022903


    但是其中的dip(dp)转px的问题我还是要说一下

      怎么说呢,用个不是很精确的表达就是 在android中  比如下面以调语句

    int viewWidth=50;  

    如果上面的自被应用到显示方面的问题,它的基本单位是px(自己琢磨,如果有问题请评论哈,谢谢)


      但是应用px呢会造成不同的设备上面出现显示的不同效果,但是dp则不会,它会根据不同的设备来得到一个合适的像素值 (不然dp 也不会是device independent pixels)也就是设备独立像素。

    为了达到一个app界面在不同的手机上显示合适的大小,所以要将dp转换为px ,不同的设备转换数字会不同

      在三星S4中   50dp=150px

      在MX3中    50dp=137px  (我拿鸟哥 和我的手机测出的!)


    3.1.2  TypedArray

        TypedArray类这个类我也在转过博客,

       主要在这里说下怎么用TypedArray来获取自定义属性在java中

      首先

        

    TypedArray a = context.obtainStyledAttributes(attrs,
    				R.styleable.ChangeColorIconWithText);
    通过上下文context对象调用obtainStyleAttributes()方法来得到TyedArray 对象  (这个时候我们给<declare-styleable>节点命名终于派上用场了)

        然后

    int n = a.getIndexCount();

    通过TypedArray对象获取一共使用了几个自定义的属性获取了自定义属性就可以调用for和switch语句了


    for (int i = 0; i < n; i++)
    		{
    			int attr = a.getIndex(i);
    			switch (attr)
    			{
    			case R.styleable.ChangeColorIconWithText_icon:
    				BitmapDrawable drawable = (BitmapDrawable) a.getDrawable(attr);
    				mIconBitmap = drawable.getBitmap();
    				break;
    			case R.styleable.ChangeColorIconWithText_color:
    				mColor = a.getColor(attr, 0xFF45C01A);
    				break;
    			case R.styleable.ChangeColorIconWithText_text:
    				mText = a.getString(attr);
    				break;
    			case R.styleable.ChangeColorIconWithText_text_size:
    				mTextSize = (int) a.getDimension(attr, TypedValue
    						.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12,
    								getResources().getDisplayMetrics()));
    				break;
    			}
    
    		}

    用完TypedArray后别忘了
    a.recycle();

    最后一点要说明的是在自定义的组件中使用自定义属性的时候,系统会默认调用3个参数的构造方法,当未使用自定义属性的时候会默认的调用2个参数的构造方法,上面的代码一般是写在3个参数的构造方法中

    (hyman老师在讲QQ5.0侧滑菜单的时候是这么说的,后来更正了这个错误,就算使用自定义属性也是调用两个参数的构造方法)


    public ChangeColorIconWithText(Context context, AttributeSet attrs,
    			int defStyleAttr)


    其中利用TypedArray对象来获取索引,以上代码。。

    这里贴一张更加精简的获取自定义属性的方法(朋友截图)这个方法更加的精简


    通过TypedArray对象的getXxxx()方法来获取自定义属性值,getDrawable()和getColor()和getDimension()
    方法都有一个默认值的参数,就是获取不到值的时候就使用默认值。 

    最后一个getDimension默认值的意思是将12sp转换成?px;


      

    到这里Android自定义属性和属性值得获取就结束了。

    关于这个方法我想做一个总结

    • 首先Android的思想也就是把数据定义与代码的操作分开的思想就很让我觉得非常牛X了,自定义属性更加让Android代码整洁美观,方便维护与修改
    • 其次自定义属性可以可以避免一些麻烦,比如说上述的关于像素单位的问题,如果在java代码中定义一个dp单位像素值,必须要使用工具方法来进行转换成px,自定义属性可以避免这个麻烦(不过在getDimension()默认值参数中要转换,这是必须的。除非你指定的就是一个px,避免不掉的麻烦)。


    展开全文
  • 系统属性获取及设置中的设置值 data/data/com.android.providers.settings/databases/settings.db 1.系统属性获取及设置 android.os.SystemProperties文件 android.os.Build文件 可以取得系统...

    系统属性获取及设置中的设置值

    data/data/com.android.providers.settings/databases/settings.db


    1.系统属性获取及设置

    android.os.SystemProperties文件

    android.os.Build文件

    可以取得系统版本等信息。

    类似adb shell : getprop看到的值

    2.设置中的设置值

    在android中,许多的系统属性都在settings应用当中进行设置的,比如wifi、蓝牙状态,当前本机语言,屏幕亮度等等一些相关的系统属性值。这些数据主要是存储在数据库中,对应的URI 为:content://settings/system和content://settings/secure,这两个是主要的,目前也只是涉及到这两个数据库表的使用。

      接下来,就了解下settings应用中是如何对系统属性进行设置的。

      当需要获得当前wifi状态的值,调用已封装的方法如下:

      Settings.Secure.getInt(getContentResolver() , Settings.Secure.WIFI_ON);

      修改wifi状态只需要调用对应的setInt方法就可以实现。

      当需要获得当前时间日期自动获取,调用如下:

      Settings.System.getInt(getContentResolver() , "auto_time");

      修改也是调用对应的setInt方法。

      注意:这里修改settings的系统属性值需要有相关的权限。如修改wifi状态需要有android.permission.WRITE_SETTINGS权限,权限问题只要参考sdk下的描述就可以。

      其实在settings应用中所获取或者修改属性都是调用了framework中android.provider.settings的 Settings类对应的方法,也就是说真正有跟数据库打交道的是在provider中,这里也体现了ContentProvider的用途。

      就大体说下android.provider.settings.Settings这个类吧。Settings里面创建了包含System和 Secure在内的几个内部类,每个内部类都对应了一张数据库表,也就是继承自BaseColumns类,System和Secure类分别对应着 system和secure数据库表。

      对于上面通过getInt获得的字段,其实是在初始获得数据库数值的时候,首先是有getString方法将数据库数据保留,然后在integer.parseInt将数据转换成int类型。这就是settings读取和保留数据的基本原理。

    ref:


    Android系统设置— android.provider.Settings
    https://www.cnblogs.com/bluestorm/p/3665596.html

    转载于:https://www.cnblogs.com/bluestorm/p/9212331.html

    展开全文
  • 如何动态获取Android系统属性

    千次阅读 2018-07-19 18:52:04
    Android设备有很多系统属性,比如说Android版本号,比如品牌,型号,比如厂商操作系统的版本号等,我们经常会要用到这些属性,那怎么获取呢? 最简单的办法,就是连接USB调试后,在命令行输入 adb shell getprop ...
  • android 获取屏幕属性

    2015-10-22 15:21:32
    android 获取屏幕属性 android中的DisplayMetrics定义了屏幕的一些属性,可以通过getMetrics方法得到当前屏幕的DisplayMetrics属性,从而取得屏幕的宽高。
  • 跟着慕课网中鸿洋大神照着写QQ5.0的侧滑菜单中遇到的问题。...但是问题来了,运行程序之后没有自定义属性的效果,于是开始找问题出在了哪里。 首先在Java代码中添加 Log ,通过 Log 对运行中的程序进行追踪,发现系统
  • 之前使用Native代码的property_get()/property_set()来获取Android系统属性,现在需要改写到Java上面,但是System.getProperty() / System.setProperty()所操作的属性与上面的是不同的东西,而在android.os.Build只...
  • 当重写ImageView的时候需要获取android:src的值 可以通过:getAttributeResourceValue("http://schemas.android.com/apk/res/android","src",0);获取 如果是自定义的属性,比如bitmap 通过:...
  • Java反射获取Android系统属性

    千次阅读 2015-04-29 16:20:59
    目录目录 反射定义 为何需要反射 反射方法Method getDeclaredMethod方法 getMethod方法 参数解释 invoke方法 Android 反射应用 反射定义“反射”(Reflection)...检测类的属性和方法。 任意调用对象的方法。 修改构造函
  • getprop 获取android系统属性

    千次阅读 2014-06-30 16:43:21
     在android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取,setprop设置。 在使用这两个命令前,先看看build...
  • Android开发周围wifi热点和属性获取

    万次阅读 多人点赞 2014-12-01 15:52:35
    Android开发中WiFi热点和WiFi...要获得Android系统相关的属性,通常需要获得相关的系统服务。在Android中最常用的是通过Manager来获得对对象的操作服务。WiFi相关的操作中需要用到两个Manager:WifiManager和Connectivi
  • 零 一、代码中的textsize属性 TextView的textsize属性我们...Android中有px、dp(dip)、sp作为单位。1px就指的是物理上的一个像素点,明显是和设备有关的,而dp是设备无关的单位,是为了更好地进行适配,sp一般作为...
  • 1. 在定义一个属性的格式的时在attrs属性文件中定义如下,reference表示图片等引用类型,color就是颜色。中间用一个竖线分割开 2. 获取格式为reference|color类型的在xml中的数据为drawable文件 为了将这个...
  • 1.根据R中属性的内存地址获取属性的名称:  getString(R.string.app_name)   2. 根据R中属性的名称获取属性对应的内存地址: getResources().getIdentifier("icon", R.drawable.class.getSimpleName...
  • 写个自定义控件时经常要自定义一些自己的属性,平时用的都是那几个,今天就顺便一起总结一下这个东东吧~一、定义:属性的定义都在attrs.xml文件里面;二、读取:通过都是通过TypedArray去读取的,要获取TypedArray...
  • Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.   在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作...
  • 主要介绍了Android开发之使用ExifInterface获取拍照后的图片属性,较为详细的分析了ExifInterface类操作图片的具体使用技巧,需要的朋友可以参考下
  • android 获取系统属性的几种方法

    千次阅读 2019-06-10 16:01:24
    android 系统中有几种获取系统属性的方法命令行、c/c++中以及java代码中 1. 命令行(shell)中 获取系统参数 getprop keys 设置系统参数 setprop keys value 2.在c/c++中 方法一: 在c/c++中properties设置...
  • 遇到某些情况需要用到android控件相关的属性,但是这些属性没有提供外部接口,甚至没有无法通过反射获取属性值可以通过一下方法获得: 下面例子是获取textview 中加粗 textStyle 的属性,根据是否加粗,使用下载的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,097
精华内容 1,638
关键字:

的属性获取android