嘿.我的应用程序将使用64个ImageButtons(8x8)的数组,并且它们都已在我的XML布局中声明,其名称类似于one1,two5,eight8等.而不是在我的Java中单独声明它们我认为它可能很聪明地在一些for循环中声明它们.我有
ImageButton musicGrid[][] = new ImageButton [8][8];
Run Code Online (Sandbox Code Playgroud)
然后我有我的嵌套for循环,它基本上创建了一个代替R.id.whatever的字符串.它只是我循环中的最后一行,应该进行分配.它的正确语法是什么,或者甚至不可能做到(如果是这样,我将如何更好地处理64按钮网格?).谢谢!
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
String btnID = "R.id.";
switch(i) {
case 0: btnID.concat("one"); break;
case 1: btnID.concat("two"); break;
case 2: btnID.concat("three"); break;
case 3: btnID.concat("four"); break;
case 4: btnID.concat("five"); break;
case 5: btnID.concat("six"); break;
case 6: btnID.concat("seven"); break;
case 7: btnID.concat("eight"); break;
}
switch(j) {
case 0: btnID.concat("1"); break;
case 1: btnID.concat("2"); break;
case 2: btnID.concat("3"); …Run Code Online (Sandbox Code Playgroud) 我正在使用翻译动画将一个鸡蛋(ImageButton)移到纸箱外(ImageView),但它一直是剪辑,所以我查看了遍历stackoverflow以找到解决方案,但在尝试实施所有解决方案后,它仍然是裁剪.
任何人都可以解释为什么我的仍然是剪辑,这是XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="top"
android:clipChildren="false"
android:clipToPadding="false"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/imageButton1"
android:background="@drawable/transparentblackbackground"
android:layout_below="@+id/relativeLayout1"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:clipChildren="false" android:clipToPadding="false" >
</ImageButton>
<!-- Total Carton for Animation -->
<RelativeLayout
android:orientation="vertical"
android:layout_width="440dp"
android:id="@+id/opencarton"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:clipChildren="false"
android:clipToPadding="false" >
<!-- The carton that holds the eggs -->
<RelativeLayout
android:orientation="vertical"
android:layout_width="260dp"
android:id="@+id/opencarton"
android:layout_height="512dp"
android:layout_centerInParent="true"
android:clipChildren="false"
android:clipToPadding="false">
<ImageButton
android:id="@+id/blackbgnd"
android:background="@drawable/clearbackground"
android:layout_height="600dp"
android:layout_width="400dp"
android:clipChildren="false"
android:clipToPadding="false"
android:gravity="center">
</ImageButton>
<!-- Top of Carton image -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/topcomponent"
android:src="@drawable/topofcarton"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:clipChildren="false"
android:clipToPadding="false">
</ImageView>
<!-- …Run Code Online (Sandbox Code Playgroud) 我应该如何获得imageButton的当前图像资源?我需要这样的东西:
imageButton.getImageResource();
Run Code Online (Sandbox Code Playgroud)
非常感谢
我想在我选择调用"DialButton"的新类中扩展ImageButton类的功能.首先,我简单地扩展了ImageButton,并没有添加任何新内容.在我看来,这应该与普通的ImageButton类相同.
package com.com.com;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageButton;
public class DialButton extends ImageButton{
public DialButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public DialButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public DialButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
}
Run Code Online (Sandbox Code Playgroud)
我在XML中插入一个DialButton(不要担心文件的其余部分,它无关紧要)
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow
android:layout_weight="1">
<DialButton
android:id="@+id/button1"
android:background="@drawable/dialpad"
android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)
并在我的活动中使用XML:
package com.com.com;
import android.app.Activity;
import android.os.Bundle;
public …Run Code Online (Sandbox Code Playgroud) 我有一个图像按钮,我想采取整个设备的宽度.我使用的图像src不像按钮那么长.默认似乎是将它与按钮的cener对齐.相反,我想将它对齐到左边.我尝试过使用布局重力但没有响应.
这是代码..
<LinearLayout
android:id = "@+id/llRoot"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="left" >
<ImageButton
android:id="@+id/ibSend"
android:layout_gravity="left"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/send" >
</ImageButton>
Run Code Online (Sandbox Code Playgroud)
我想在图像按钮下添加文本,这些文本也是可点击的,并且将被重定向到与图像按钮相同的活动.基本上它就像任何Android手机中的应用程序列表,例如
在我的水平LinearLayout中,我有一个TextEdit和一个ImageButton.ImageButton与TextEdit一样高.
我希望ImageButton的长度和它一样宽.
目前看起来像ImageButton的宽度就像没有缩放(ImageButton width [px] =未缩放的可绘制宽度[px]):

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/txtName"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageButton
android:id="@+id/btSet"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="fitEnd"
android:src="@drawable/pin2" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
它应该如何:

我创建了一个带按钮和非按下状态选择器的ImageButton,这很好用.
但是按钮的形状不规则,我只希望它可以在底层矩形图像不透明的地方点击.
所以我实现了一个OnTouchListener,它根据Bitmap的像素值检查触摸事件的坐标(如第一个答案中所述:链接).就判断是否按下按钮的逻辑而言,这是有效的,但现在按钮的图像不再变为按下的图像.
这是我有的:
选择器xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/button_start_call_pressed" />
<item android:drawable="@drawable/button_start_call_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)
布局中部分透明的ImageButton:
<ImageButton
android:id="@+id/dashboardStartCallButton"
android:background="@null"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/start_call_button_selector"
/>
Run Code Online (Sandbox Code Playgroud)
在活动中:
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
...
ImageButton startCallButton = (ImageButton) this.findViewById(R.id.dashboardStartCallButton);
startCallButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return OnStartCallButtonTouch(v,event);
}
});
}
public boolean OnStartCallButtonTouch(View v, MotionEvent event)
{
Bitmap TheBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.button_start_call_normal);
int eventPadTouch = event.getAction();
int iX = (int) event.getX();
int …Run Code Online (Sandbox Code Playgroud) 我想调整我ImageButton使用鼠标的图形布局或使用代码的
android:layout_width,android:layout_height.但是每当我这样做时,它ImageButton都没有调整大小,实际上它并不小,但它在边缘被切割.
提前致谢
我有一个透明的ImageButton.单击时,按钮的ImageResource设置为drawable-hdpi文件夹中的drawable(基本上图像显示在透明ImageButton的顶部).我正在使用这种ImageButton.setImageResource()方法来做到这一点.我的问题是,如何删除图像资源,以便再次只有透明图像按钮.当然,我需要能够在java中执行此操作,而不是XML.我尝试了以下ImageButton.setImageResource(null); 无效的方法:我也看了一下,找不到答案......提前感谢您的帮助.
编辑:谢谢大家的回答.PéterVarga的回答正是我所需要的,所以这就是我的目标.