2 ssummeraw ssummeraw 于 2013.03.21 17:14 提问

如何读取自定义的组件中的 android:src ?

我想创建一个自定义组件,继承 RelativeLayout。
在我的 xml 布局文件中是这样设置的:

<Mycomponent 
    android:src="@drawable/my_test_image">
      <TestView>
</Mycomponent>

如何在 Mycomponent 的 constructor 里创建一个 Drawable 类?
我想查看 ImageView 的源代码,但是似乎是 android 的内部代码。
在我的代码中如何实现呢?

2个回答

wu_shu_jun
wu_shu_jun   2013.03.22 11:04
已采纳

你要定义过一个自己的属性(例:img),再用下面的方法得到

TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.ButtonPreference, defStyle, 0);
        //button的名称
        Drawable drawable = a.getDrawable(R.styleable.MyComponent_img);
        a.recycle();
suannai0314
suannai0314 帮你编辑了下代码格式,更多markdown实用方法见http://ask.csdn.net/pages/markdown
5 年多之前 回复
hxn_217
hxn_217   2013.03.26 17:50
public CustomView(Context context, AttributeSet attrs) {
 super(context, attrs);
 int src_resource = attrs.getAttributeResourceValue("http://schemas.android.com/apk/res/android", "src", 0);
 this.setImageBitmap(getDrawable(getResources(),src_resource));
}

public static Bitmap getDrawable(Resources res, int id){
    return BitmapFactory.decodeStream(res.openRawResource(id));
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android读取src下的文件
1.从src目录下,读取文本文件内容     public static String inputStreamToString(Class _class, String metadataFileName) throws IOException {        InputStream in = _class.getResourceAsStream(metadataFileName);    
自定义view2——创建你自己的组件自定义属性
在上一篇文章我已经说过如何制作一个最简单的自定义组件 这一篇,接着上一篇,再深一些些,比如,如何给你的自定义组件添加一些自定义属性,自定义属性举个例子,我们在xml创建一个imageview的时候,我们可以在xml里面填入图片资源id,如下图:<ImageView android:id="@+id/testsimple" android:src="@dr
android 中读写xml文件时取得路径的方法/data/sdcard/src
读取xml文件的各种路径说明。 package com.eboy.readwritexml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; i
java|android加载src路径下面的图片文件
//我把a.jpg和MainActivity 放在同一个路径下面 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Context context = getApplicationContext();
android自定义列表
android中的自定义列表组件,很好用 绝对源码,android中的自定义列表组件,很好用 绝对源码
Android 自定义组件之如何实现自定义组件
参考链接:http://blog.csdn.net/jjwwmlp456/article/details/41076699 简介 Android提供了用于构建UI的强大的组件模型。两个基类:View和ViewGroup。 可用Widget的部分名单包括Button, TextView, EditText, ListView, CheckBox,RadioButton, Galle
更改xml文件中imageview的src属性方法
 更改xml文件中imageview的src属性方法:   view.setImageResource(R.drawable.xx);
Android开发中自定义View设定到FrameLayout布局中实现多组件显示
在Android开发中,如果我们想自定义View视图组件,并实现在FrameLayout布局中多个组件的同时显示呢? 举例来说想在自定义的View上面显示Button 等View组件需要完成如下任务1.在自定义View的类中覆盖父类的构造(注意是2个参数的)public class MyView2 extends View{  public MyView2(Context
数据访问(src、assets、res读取)以及app安装路径
第二节 数据访问   Android项目中有三个比较重要的文件夹:src、assets、res,本节将依次介绍如何获取上述三个文件夹内的文件。 ClassLoader   在JavaSE中通常都会使用ClassLoader(类加载器)来访问src文件夹下的某个文件,在Android中也是同样如此。   问:什么是类加载器?   答:虚拟机若想运行某一个类,则必须先将其加载入内存,而加
android-自定义ImageView-圆形图片绘制代码详解
andorid中圆形图片很早就有啦,今天算是搞了一把,自己写了出来,并且可以实际使用的代码。 先看效果图: 图片的原图是: 先看看xml的布局文件是怎么样的:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"