カスタムビューを作成してレイアウトで使用できます。
exmaple
:
custom_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imgview" />
</LinearLayout>
CustomView.java
public class CustomView extends LinearLayout {
int width = -1;
int height = -1;
ImageView imageview;
public CustomView(Context context) {
super(context);
inflate(context, R.layout.custom_layout, this)
initViews();
}
@SuppressWarnings("ResourceType")
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
inflate(context, R.layout.custom_layout, this);
int[] attributes = {
android.R.attr.width, //=====> 0
android.R.attr.height //=====> 1
};
TypedArray attrSet = context.obtainStyledAttributes(attrs, attributes);
width = attrSet.getDimension(0, -1); //android.R.attr.width,
height = attrSet.getDimension(1, -1); //android.R.attr.height
attrSet.recycle();
initViews();
}
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
inflate(context, R.layout.custom_layout, this);
initViews();
}
public void initViews(){
imageview = findViewById(R.id.imgview);
if(width > -1){
imageview.setWidth(width);
}
if(height > -1){
imageview.setHeight(height);
}
}
}
、あなたはそれを使用したい場合:
activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CustomView
android:layout_width="33dp"
android:layout_height="33dp" />
</LinearLayout>
基本構造を表示しようとしましたが、このコードをカスタマイズする必要があります。
私はこのレイアウトをカスタムビューに変換するべきだと思います。 – K2evil