java - 为什么我的 ImageView 不获取位图并显示它?

标签 java android

public class UserlistActivity extends AppCompatActivity {

    static ListView userlist;
    static String[] users;
    ImageView user;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_userlist);
        setIDs();
        Bitmap userphoto = null;
        try {
            userphoto = getBitmapFromAsset("user dashboard.png");
        } catch (IOException e) {
            e.printStackTrace();
        }
        new Gate(this, "USERLIST").execute();
        String mDrawableName = "user dashboard";
        int resID = getResources().getIdentifier(mDrawableName , "assets", getPackageName());
        user.setImageResource(resID);
        user.setImageBitmap(userphoto);
    }

    private Bitmap getBitmapFromAsset(String strName) throws IOException
    {
        AssetManager assetManager = getAssets();
        InputStream istr = assetManager.open(strName);
        Bitmap bitmap = BitmapFactory.decodeStream(istr);
        return bitmap;
    }

    private void setIDs() {
        userlist = (ListView) findViewById(R.id.userlist);
        View inflatedView = getLayoutInflater().inflate(R.layout.userlist_list_item, null);
        user = (ImageView) inflatedView.findViewById(R.id.user);
    }

    static void fillData(Context context) {
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, R.layout.userlist_list_item, R.id.listtext, users);
        userlist.setAdapter(arrayAdapter);
    }

这里我试图获取位图(它在其他 Activity 中工作正常)并将其附加到 ImageView ,该 ImageView 是我传递给适配器的列表项自定义布局的一部分,但我不知道问题出在哪里,图像没有出现

编辑::

我通过将照片的另一个副本添加到可绘制来修复它,这样我就可以将其与源一起添加并跳过工作

最佳答案

我认为您忘记将 inflatedView 添加到您的 parent View

使用此代码:

 LinearLayout parent = (LinearLayout)findViewById(R.id.parent_layout);
View inflatedView = getLayoutInflater().inflate(R.layout.userlist_list_item, null);
user = (ImageView) inflatedView.findViewById(R.id.user);
parent.addView(inflatedView);

使用以下方法:

private Bitmap getBitmapFromAsset(String strName)
{
    AssetManager assetManager = getAssets();
    InputStream istr = null;
    try {
        istr = assetManager.open(strName);
    } catch (IOException e) {
        e.printStackTrace();
    }
    Bitmap bitmap = BitmapFactory.decodeStream(istr);
    return bitmap;
}

关于java - 为什么我的 ImageView 不获取位图并显示它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865009/

相关文章:

java - SQL 连接在普通 Java 中有效,但在 Android 中无效

android - 嵌入式列表 - 如何?

java - 使用 Protocol Buffer 进行二进制日志记录

java - 更改层次结构父级

java - 充气城堡没有这样的供应商异常

Android设置线程亲和性

java - 将 java fx 日期选择器日期与查询中的 sql 日期进行比较

java - 环境变量在 websocket 中不可用

java - 重启手机取消共享首选项

java - 保护应用程序中的 Web 服务