zoukankan      html  css  js  c++  java
  • 关于R.styleable的问题

    原来想直接想调用程序的东西,但是使用R.styleable的时候 eclipse不能解析了,后来发现原来被删除了此方法

    Java代码  收藏代码
    1. public ImageAdapter(Context c) {  
    2.     mContext = c;  
    3.     TypedArray a = obtainStyledAttributes(android.R.styleable.Theme);  
    4.     mGalleryItemBackground = a.getResourceId(  
    5.             android.R.styleable.Theme_galleryItemBackground, 0);  
    6.     a.recycle();  
    7. }  

     这种方法也就不能用了

    然后

    public ImageAdapter(Context c) {
        mContext = c;
        TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery1);
        mGalleryItemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);
        a.recycle();
    }

    唯一要做的就是自己去做一个styleable

    resvalues 

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
        <declare-styleable name="Gallery1"> 
            <attr name="android:galleryItemBackground" /> 
        </declare-styleable> 
    </resources>
    ////////////////

    以launcher为例说明自定义控件的属性:

    1、  在layout里面定义控件,如:

    <com.junction.launcher.DragLayer

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

         xmlns:launcher="http://schemas.android.com/apk/res/com.junction.launcher"

        android:id="@+id/drag_layer" android:layout_width="match_parent"  android:layout_height="match_parent">

      <com.android.launcher.Workspace

            android:id="@+id/workspace"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            launcher:defaultScreen="1">

            <include android:id="@+id/cell1" layout="@layout/workspace_screen" />

            <include android:id="@+id/cell2" layout="@layout/workspace_screen" />

            <include android:id="@+id/cell3" layout="@layout/workspace_screen" />

        </com.android.launcher.Workspace>

    2、  该控件workspace下面有一个属性是launcher:defaultScreen,这属性不是ViewGroup(workspace类是继承于ViewGroup)所定义的属性,那么我们可以在 esvalues里面的attrs.xml里面定义

    具体的定义方法如下:

    <resources>

    <declare-styleable name="Workspace">

        <attr name="defaultScreen" format="integer"  />

        </declare-styleable>

    </resources>

    引用方法是 先申明xmlns:launcher="http://schemas.android.com/apk/res/com.junction.launcher"(R.java),这样就可以使用launcher:defaultScreen。

    3、  这样我们在Workspace的类里面就可以去除在layout里面对该属性的赋值,方法如下:

    Int mDefaultScreen;

     TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Workspace, defStyle, 0);

    mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen, 1);

    a.recycle();

    ++++++++++++++++++++++++++++++

    自己案例:可看一个gifPlayer的demo程序。

    其他案例:http://blog.csdn.net/Android_Tutor/archive/2010/04/20/5508615.aspx

    
    
  • 相关阅读:
    javascript:getElementsByName td name
    C# 批量复制文件
    笨笨图片批量下载器[C# | WinForm | 正则表达式 | HttpWebRequest]
    浩方魔兽"去"小喇叭终极解决方案[Warcraft III]
    JavaScript——DataListBox(组合框)
    PowerDesigner 12 根据名称生成注释(完整示例)
    笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]
    使用IHttpHandler做权限控制[ASP.NET | IHttpHandler | AjaxPro | UserHostName]
    AjaxPro 未定义错误
    北京有趣地名(二)
  • 原文地址:https://www.cnblogs.com/yaya-Android/p/4566870.html
Copyright © 2011-2022 走看看