当前位置: 首页 > 知识库问答 >
问题:

RecycerView中的imageButton未

赖鸿羲
2023-03-14

我在你的论坛上潜伏了一段时间,他们在我遇到的各种问题上给了我巨大的帮助,所以谢谢!:d

我正试图创建我的第一个android应用程序,这是一个纸牌游戏,名为shithead,我和我的朋友们过去经常玩。

我觉得我必须非常接近,我只是错过了一些与android或android Studio工作的关键语法。

在我的卡片对象中,我构建了一个字符串idText,它与我保存在Android Studio中我的项目的mipmap-hdpi、mipmap-xhdpi等文件夹(mipmap-hdpi如下所示)mipmap-hdpi文件夹中的卡片图像相关联

public Card(int suitInput, int rankInput)
{
    suit = suitInput;
    rank = rankInput;
    faceUp = false;
    text = RankString[rank] + " of " + SuitString[suit];
    idText = "i_" + RankString[rank] + "_of_" + SuitString[suit];
}

我的卡类中还有一个函数getImageId:

public static int getImageId(Context context) {
    return context.getResources().getIdentifier("drawable/@+id/" + idText, null, context.getPackageName());
}
@Override
public void onBindViewHolder(CardAdapter.ViewHolder viewHolder, int position)
{
    //get the data model based on position
    Card card = mCards.get(position);

    //Set item views baased on views and data model
    ImageButton imageButton = viewHolder.cardButton;
    imageButton.setImageResource(card.getImageId(mContext));
    TextView textView = viewHolder.cardText;
    textView.setText(card.text);
}
public class MainActivity extends AppCompatActivity {

Player me;
Deck deck;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.testdisplay);

    //lookup the recyclerview in activity layout
    RecyclerView rvCards = (RecyclerView) findViewById(R.id.rvCards);

    me = new Player("Dr_StrangeKill");
    deck = new Deck();

    me.hand.add(deck.getCards().remove(0));
    me.hand.add(deck.getCards().remove(0));
    me.hand.add(deck.getCards().remove(0));
    me.hand.add(deck.getCards().remove(0));
    me.hand.add(deck.getCards().remove(0));
    me.hand.add(deck.getCards().remove(0));

    //create adapter passing in sample user data
    CardAdapter adapter = new CardAdapter(this, me.hand);
    //Attach the adapter to the recyclerView to populate items
    rvCards.setAdapter(adapter);
    //Set layout manager to position the items
    rvCards.setLayoutManager(new LinearLayoutManager(this));
}

共有1个答案

公冶谦
2023-03-14

我建议你把你的图像放在一个可抽吸的文件夹中,因为mipmap文件夹是用来放启动器图标的,如果你想支持不同的屏幕密度,这里有一个链接告诉你如何为每个屏幕密度创建一个可抽吸的文件夹,然后你应该像这样获得你的图像标识符:

context.getResources().getIdentifier(idText, "drawable", context.getPackageName());
 类似资料:
  • 以下图片将帮助您了解我的问题: 我想将显示在图像按钮中的图像拉伸到图像按钮的整个区域。如您所见,数字为1的图片仅占图像按钮的95%,您还可以看到图像按钮的边界。 我仍然希望保持图像按钮样式 以下是我如何使用ImageView: 我想我发现了我的问题所在,我需要一个自定义组件,它只能包含一个图像,并且具有点击效果。

  • 我试图在片段中的RecyyerView上设置一个click listener我不知道如何调用片段中的活动我只知道在构造函数中解析上下文,但clickListener以前没有这样做,我试过了,但它根本不起作用 我怎么能做到这一点我试过男人的事情它不起作用 如果我这样做,它会显示红线。在getContext()下;

  • 在前面两章我们讲了 TextView,它是一个纯输出的控件;而 EditText 在 TextView 基础之上加入了简单的输入功能;今天要讲的 Button 是一个和用户互动感很强的控件,从今往后不再是单纯的文本展示,我们可以通过 TextView、EditText 再加上 Button 做出非常多有很意思的功能。ImageButton 可以理解为是 Button 的升级版,它在后者的基础之上加

  • 我知道RecycerView类中没有默认的选择方法,但我尝试了以下方法, 在尝试这段代码时,我得到了预期的输出,但完全不是。 我将用图像来解释这一点。 我如何克服这个问题?有时,如果我快速滚动列表,就会选择其他项目。如何克服这个问题呢? 更新 当我试图在之后使用时,

  • 我使用的是recylcer视图,每一行都包含cardview,即使我的textview内容较少,我也需要显示cardview的全宽度。我尝试了很多方法,但都没用。 XML 即使我设置宽度来匹配父级,但没有用。 充气文档: 从指定的xml资源膨胀一个新的视图层次结构。如果出现错误,则引发IflateException。 要加载的XML布局资源(例如,r.layout.main_page)根视图的资源

  • 在回收器视图中,我试图实现MP折线图。我有一个rest api,用于获取数据并将其保存在HashMap中。现在我想根据我的API响应来设置数据。请协助我在一个列表项目中创建一个线图。