所以这是我的第一个应用程序,我正在尝试编码,需要一些按钮帮助.在寻找答案后,我找不到一个我理解的答案.我希望能够为应用程序创建不同的页面并将imagebuttons链接建立到这些页面.这是我按钮的最基本代码.请尝试解释在哪里放置代码等.提前感谢.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:background="@drawable/home_button"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:nestedScrollingEnabled="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 我在 android 中创建了一个图像按钮,但是当我点击那个按钮时什么也没有发生。我已经设置了所有属性,但仍然没有发生任何事情。所以你能帮我看看我哪里错了。
xml文件
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_x="0dp"
android:layout_y="3dp" />
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
/>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
搜索.java
public class SearchData extends Activity {
ImageButton search;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_data);
search =(ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种方法来动态更改工具栏(如ActionBar)中所有元素的颜色。
规格:
parent="Theme.AppCompat.Light.NoActionBar"在styles.xml上使用setSupportActionBar()在我的AppCompatActivity我已阅读以下帖子:
我现在正在做的是在工具栏上搜索ImageButton(在support actionbar中获取对抽屉切换的引用),然后setColorFilter()像下面的代码一样将它们应用于所有对象:
for (int i = 0; i < toolbar.getChildCount(); i++){
if (toolbar.getChildAt(i) instanceof ImageButton) {
ImageButton ib = (ImageButton) toolbar.getChildAt(i);
ib.setColorFilter(Color.parseColor("#A74231"), PorterDuff.Mode.SRC_ATOP);
}
}
Run Code Online (Sandbox Code Playgroud)
我改变的背景和文本颜色搭配:toolbar.setBackgroundColor和toolbar.setTitleTextColor。
对于菜单图标(包括溢出菜单图标):
MenuItem item2 = mMenu.findItem(R.id.actionbar_group_moreoverflow);
item2.getIcon().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
的问题:有没有更好的办法做到这一点(改变工具栏的元素色彩动态)?
android android-appcompat android-imagebutton android-toolbar
I have an app which has fragment and image button on that. The problem is it's working on and above 5.0 but not below 5.0. The min sdk version is 17.
Not getting what's wrong here. I am getting 2 exceptions.
One is RuntimeException for image button.
Second is ResourceNotFoundException for fab selector file.
Log : 1st exception --
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.siddhi.timetablelayout/com.example.siddhi.timetablelayout.MainActivity}: android.view.InflateException: Binary XML file line #16:
Error inflating class ImageButton
2nd exception --
Caused …
android android-resources inflate-exception binary-xml android-imagebutton
我试图添加一个删除按钮,该按钮应该根据数据库中的位置删除数据库中的项目RecyclerView.我正在努力解决这个问题.这是我的布局文件RecyclerView:
<TextView
android:id="@+id/layout_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/layout_list_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/layout_list_name"
android:layout_alignLeft="@+id/layout_list_name"
android:layout_below="@+id/layout_list_name" />
<ImageButton
android:id="@+id/layout_list_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:contentDescription="Delete"
android:src="@drawable/icon_layout_delete_layout_item" />
Run Code Online (Sandbox Code Playgroud)
这是我申报onItemClick的ImageButton是删除按钮:
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getBaseContext(), "Delete hit!", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的RecyclerView听众课程:
private OnItemClickListener onItemClickListener;
public interface OnItemClickListener {
void onItemClick(View view, int position);
}
GestureDetector gestureDetector;
public ListsDatabaseItemListener(Context context, OnItemClickListener listener) {
onItemClickListener = listener; …Run Code Online (Sandbox Code Playgroud) 我正在使用 AndroidX 支持库。在我的清单中,我声明:
<application
...
android:theme="@style/AppTheme">
Run Code Online (Sandbox Code Playgroud)
在values.styles.xml我声明:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:imageButtonStyle">@style/MyImageButton</item>
</style>
<style name="MyImageButton" parent="Widget.AppCompat.ImageButton">
<item name="android:background">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后我通过以下方式使用 ImageButton:
<ImageButton
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,我ImageButton显示的是灰色背景而不是透明背景。我该怎么做才能修复它?
我想在按下事件时更改 ImageButton 的背景颜色。
这是我所做的:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_normal" />
<solid
android:state_pressed="true"
android:color="@color/rose_fonce" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我的按钮很好地采用“rose_normal”颜色,但在按下时从来没有采用“rose_fonce”颜色。
哪里有问题 ?
编辑:问题已解决:
创建一个名为 background_rounded_button.xml 的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_selected="true"></item>
<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_pressed="true"></item>
<item android:drawable="@drawable/rounded_button_rose_normal"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
rounded_button_rose_fonce.xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_fonce" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape>
Run Code Online (Sandbox Code Playgroud)
rounded_button_rose_normal.xml :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/rose_normal" />
<stroke
android:width="1sp"
android:color="@color/rose_fonce" />
</shape> …Run Code Online (Sandbox Code Playgroud) 当我尝试将常规按钮和ImageButton设置为相同时,我在LinearLayout中得到了一些奇怪的行为layout_weight.图像按钮的android:src资源非常小,非常适合ImageButton,没有任何问题.即使它们的宽度应该相同,但由于某种原因,ImageButton的宽度大约是普通按钮其余部分的2/3.如果我将ImageButton的乘以layout_weight10,它更接近正确的大小,但为什么这不起作用?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/clear"/>
<Button
android:id="@+id/left_paren"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/left_paren"/>
<Button
android:id="@+id/right_paren"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/right_paren"/>
<ImageButton
android:id="@+id/backspace"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="@string/backspace"
android:src="@drawable/backspace"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android android-layout android-imagebutton android-layout-weight
我有一个滚动视图,其中有 4 个 ImageButtons。但是,当我在约束布局中定义约束时,我在 XML 文件中收到错误消息:“无法解析符号 @id/imageButton ”。我不明白这个错误消息,因为我已经定义了图像按钮的 id。有人能帮我吗?这是代码的一部分:
<ScrollView
app:layout_constraintTop_toBottomOf="@id/toolbar_mainActivity"
app:layout_constraintBottom_toTopOf="@id/bottom_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_width="0dp"
android:layout_height="0dp">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity"
tools:ignore="ExtraText">
<ImageButton
android:id="@+id/imageButton_1"
android:layout_width="0dp"
android:layout_height="128dp"
android:layout_marginTop="12dp"
android:background="#00000000"
android:scaleType="fitCenter"
app:layout_constraintEnd_toStartOf="@id/imageButton_2"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/test_dish_1" />
<ImageButton
android:id="@+id/imageButton_2"
android:layout_width="0dp"
android:layout_height="128dp"
android:layout_marginTop="12dp"
android:background="#00000000"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/imageButton_1"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/test_dish_1" />
<ImageButton
android:id="@+id/imageButton_4"
android:layout_width="0dp"
android:layout_height="128dp"
android:layout_marginTop="12dp"
android:background="#00000000"
android:scaleType="fitCenter"
app:layout_constraintEnd_toStartOf="@id/imageButton_3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/imageButton_1"
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/test_dish_1" />
<ImageButton
android:id="@+id/imageButton_3"
android:layout_width="0dp"
android:layout_height="128dp"
android:layout_marginTop="12dp"
android:background="#00000000"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/imageButton_4"
app:layout_constraintTop_toBottomOf="@id/imageButton_1"
app:srcCompat="@drawable/test_dish_1" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
例如,错误显示在以下行中: 'app:layout_constraintEnd_toStartOf="@id/imageButton_2"'
这是 Android Studio …
我想得到X和Y的观点(ImageButton).
当我尝试使用下面的代码在Click事件上找到X和Y时,我得到View的正确X和Y坐标.
ImageButton imagebutton = findviewbyId(R.id.imagebutton);
imagebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int[] posXY = new int[2];
v.getLocationOnScreen(posXY);
x = posXY[0];
y = posXY[1];
Log.d("X and Y Point", x + " " + y);
}
});
Run Code Online (Sandbox Code Playgroud)
但是在点击视图之前我想要X和Y坐标,所以我尝试用下面的代码得到X和Y.
ImageButton imagebutton = findviewbyId(R.id.imagebutton);
int[] posXY = new int[2];
imageButton.getLocationOnScreen(posXY);
x = posXY[0];
y = posXY[1];
Log.d("X and Y Point", x + " " + y);
Run Code Online (Sandbox Code Playgroud)
但每当我尝试使用ClickListener获取X和Y时,我得到X和Y为0和0.因此,如果没有ClickListener,我不会得到Proper X和Y. 任何人都可以帮助解决什么是实际问题,如何在没有ClickListener的情况下获得Proper X和Y?
android ×10
android-view ×1
androidx ×1
binary-xml ×1
button ×1
events ×1
listener ×1
onclick ×1
selector ×1